المشاركات : 522
المواضيع 46
:
: 394
الإنتساب : Sep 2011
(17-07-2020, 02:24 AM)ALG2009 كتب : (16-07-2020, 06:03 PM)larbiparadox كتب : لو كان للتلميذ درس واحد نستطيع حفظ مرة واحدة وانتهى الامر ، في قفل واحد نضع حفظ التلميذ و بعدها حفظ الدرس ، لكن للتلميذ مجموعة من الدروس
سهرت مع هذا الفيديو لأحوله إلى الفيربيرد فلم أستطع أظنه يفي بالغرض أليس كذلك
الفيديو
تم تحويل الكود وفق قاعدة البيانات السابقة
كود Procedure أنا سميتها N_N
PHP كود :
--Procedure: N_N
--DROP PROCEDURE N_N;
SET TERM ^ ;
CREATE OR ALTER PROCEDURE N_N (
STUDENTNAME VARCHAR(50) CHARACTER SET UTF8,
COURSENAME VARCHAR(50) CHARACTER SET UTF8
)
AS
declare variable COURSEID integer;
declare variable STUDENTID integer;
BEGIN
/* Procedure code */
:STUDENTID = (Select ID_STUDENT from STUDENT where NAME = :STUDENTNAME);
if (:StudentId is null) then
Begin
Insert into STUDENT (NAME) values (:STUDENTNAME);
:StudentId = (SELECT GEN_ID( GEN_STUDENT_ID, 0 ) FROM RDB$DATABASE);
End
:CourseId = (Select ID_LESS from LESSONS where LESSNAME = :COURSENAME);
if (:CourseId is null) then
Begin
Insert into LESSONS (LESSNAME) values (:COURSENAME);
:CourseId = (SELECT GEN_ID( GEN_LESSONS_ID, 0 ) FROM RDB$DATABASE);
End
Insert into STUDLESSON (ID_LESS,ID_STUDENT) values (:CourseId, :StudentId);
END^
SET TERM ; ^
للإستدعاء الدالة
PHP كود :
execute procedure N_N ('aa','nnn')
المشاركات : 145
المواضيع 1
:
: 41
الإنتساب : Aug 2019
ماذا لو كان هناك أكثر من تلميذ بنفس الاسم؟
المشاركات : 522
المواضيع 46
:
: 394
الإنتساب : Sep 2011
(21-07-2020, 06:47 PM)sofiane201 كتب : ماذا لو كان هناك أكثر من تلميذ بنفس الاسم؟
* أنا معك في هذا ، لقد فكرت في هذا ، لكن الهدف توصيل الفكرة
* في مثل هذه الامور لا يعتمد على الاسم و لا على الترقيم التلقائي ، يجب وضع رقم تسجيل لكل تلميذ و ووضع رقم خاص بالدرس و هذا لتفادي جميع الخطاء
هذا درس عام بدون إحتياطات
المشاركات : 421
المواضيع 77
:
: 195
الإنتساب : Dec 2008
جزاكم الله خيرا وأدخلكم الجنة إستفدت كثير من خلال مساعدتكم وما زلت أتعلم بارك الله فيكم
(21-07-2020, 06:47 PM)sofiane201 كتب : ماذا لو كان هناك أكثر من تلميذ بنفس الاسم؟
ولكن الإجراء( Procedure ) لا يسمح بإدخال نفس إسم التلميذ
يدخل لكل تلميذ عدة دروس أو لكل درس عدة تلاميذ ليسو بنفس الإسم فجملة if (:StudentId is null) then تتحقق من الإسم إذا كان موجود فلا تدخله مرة أخرى أليس كذلك؟
المشاركات : 522
المواضيع 46
:
: 394
الإنتساب : Sep 2011
(22-07-2020, 01:38 AM)ALG2009 كتب : جزاكم الله خيرا وأدخلكم الجنة إستفدت كثير من خلال مساعدتكم وما زلت أتعلم بارك الله فيكم
(21-07-2020, 06:47 PM)sofiane201 كتب : ماذا لو كان هناك أكثر من تلميذ بنفس الاسم؟
ولكن الإجراء( Procedure ) لا يسمح بإدخال نفس إسم التلميذ
يدخل لكل تلميذ عدة دروس أو لكل درس عدة تلاميذ ليسو بنفس الإسم فجملة if (:StudentId is null) then تتحقق من الإسم إذا كان موجود فلا تدخله مرة أخرى أليس كذلك؟
ليس المشكل في عدم تكرار الاسم ، ما يقصده الاخ sofiane201 في حالة وجود تلميذين لهما نفس اللقب و نفس الاسم ويختلفان في تاريخ الازدياد ، في هذه الحالة يقبل تلميذ و واحد فقط فالثاني لا ، ومن هنا وضع الاحتياطات لمثل هذه الامور
المشاركات : 421
المواضيع 77
:
: 195
الإنتساب : Dec 2008
(21-07-2020, 01:13 PM)larbiparadox كتب : ليس المشكل في عدم تكرار الاسم ، ما يقصده الاخ sofiane201 في حالة وجود تلميذين لهما نفس اللقب و نفس الاسم ويختلفان في تاريخ الازدياد ، في هذه الحالة يقبل تلميذ و واحد فقط فالثاني لا ، ومن هنا وضع الاحتياطات لمثل هذه الامور
بالفعل لو أردت أن أضيف تلميذ بنفس الإسم سأقع في مشكل عدم الإضافة وهنا سأضطر إلى أن أضيف رقم خاص للتلميذ كما ذكررت لي سابقا وهنا إما أن يكون الرقم الوطني أو أن أقوم بعملية حسابية لذلك كأن أأخذ الحرف الأول من الإسم والحرف الأول من اللقب وأضيف إليهم تاريخ الميلاد بدون / لتكوين رقم التلميذ هذا كإقتراح من عندي