الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]مشكلة مع برنامج لإدارة المدرسة والطلاب

بدأه القصواء في 27 أكتوبر 2012 · 20 رد · 1,980 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم - تقبل الله منا ومنكم صالح الأعمال

عندي جدول يحتوي على الحقول الاتية : الادارة التعليمية - اسم المدرسة - كلمة المرورللمدرسة وهذا الجدول مخزن في داتا بيز mysql

وعندي جدول آخر يحتوى على الحقول الاتية :الادارة التعليمية - اسم المدرسة - مسلسل الطالب - اسم الطالب - النوع - الديانة

مدير المدرسة يدخل على الموقع بكلمة مرور المدرسة المرسلة له- فإن كانت كلمة المرور صحيحة تفتح له صفحة التسجيل لبيانات طلاب مدرسته

والمطلوب هو اخذ بيانات الجدول الأول ( الادارة التعليمية ، اسم المدرسة ) الخاصة بهذه المدرسة وادراجهم اثناء التسجيل أمام كل طالب في الجدول الثاني

الرجاء معرفة كيف يتم ذلك مع العلم انه ربما تسجل اكثر من مدرسة بياناتها في وقت واحد .

#2

السلام عليكم

ستكون الطريقة بإستخدام الجلسات على فرض أن اسماء الحقول في الجداول هي كالتالي :

table1
d_education
school_name
school_pass

table2
d_education
school_name
student_id
student_name
student_sex

- أولاً يتم جلب الحقلين d_education و school_name من الجدول الأول طبعاً بعد عملية تسجيل الدخول من خلال مدرس المدرسة وبعد ذلك تشغيل جلسة وحفظ هذه القيم في الجلسة كالتالي :

// يتم جلب هذه المتغيرات من الجدول الأول
$d_education = '';
$school_name = '';
if(!isset($_SESSION))
	SESSION_START();

$_SESSION['d_education'] = $d_education;
$_SESSION['school_name'] = $school_name;

- وفي صفحة تسجيل البيانات يتم حفظ القيم الموجودة في الجلسة في متغيرات ووضعها في الحقول تلقائياً حتى لا يعاد كتابتها ويمكن جعل الحقول للقراءه فقط حتى لا يتم التعديل عليها إن أردت ذلك ويكون الكود كالتالي :

<?php
if(!isset($_SESSION))
	SESSION_START();

$d_education = '';
$school_name = '';
if(isset($_SESSION['d_education']) and isset($_SESSION['school_name']))
{
	$d_education = $_SESSION['d_education'];
	$school_name = $_SESSION['school_name'];
}
?>
<input name="d_education"   value="<?php echo $d_education; ?>" />
<input name="school_name"   value="<?php echo $school_name; ?>" />
2

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#3

الاخ العزيز احمد جزاك الله خير الجزاء وكل عام وحضرتك بخير

اشكر لك سرعة الرد على سؤالي ولكن ما ضبطت معي فهل اطمع من حضرتك

تنفيذ ذلك على مثال من حضرتك ثانياً : وهل يمكن جعل الحقلين في الجدول الاول يكونو مخفيين ولكن يتم تسجيلهم في الجدول الثاني

وشاكر لك استاذي العظيم

تم تعديل هذه المشاركة بواسطة القصواء في 27 أكتوبر 2012 في 23:40

#4

وكل عام وأنت بخير أختي الكريمة وبارك الله فيكي , عيد مبارك أعاده الله علينا وعليكم وعلي سائر بلاد المسلمين بالخير واليمن والبركات

* الفكرة بإختصار هي تخزين المتغير مؤقتاً لإستخدامة في أي وقت أثناء الجلسة وزمن إنتهاء الجلسة يكون من بداية تشغيل الجلسة إلي إغلاق المتصفح .

ستسألي نفسك ما هي المتغيرات التي تريدي تخزينها لتستخدميها أثناء الجلسة في مثالنا هذا هما اسم الإدارة التعليمية واسم المدرسة , فبعد تسجيل دخول المدرس يتم جلب هذه البيانات من القاعدة وتخزينهم في الجلسة .

- وإن أردت أن تكون الحقول مخفية لكل من اسم الإدارة واسم المدرسة لن تقومي بعمل حقول لهم فقط ستقومي بجلب قيمتهم من الجلسة وتخزينهم في الجدول الثاني مع باقي البيانات المرسلة من نموذج التسجيل .

* خطوات عمل جلسة وجلب البيانات منها :

1- يتم تشغل الجلسة والكود التلي بقوم بالتحقق هل هناك جلسة مفتوحة أم لا إن لم يكن هناك جلسة مفتوحة يقوم بفتح جلسة جديدة :

if(!isset($_SESSION)) SESSION_START();

2- تخزين المتغيرات في الجلسة :

$_SESSION['var1'] = $value1;
$_SESSION['var2'] = $value2;

حيث أن var1 و var2 هما اسماء المتغيرات في الجلسة و $value1 و $value2 هما القيم التي ستخزن في المتغبرات السابقة داخل الجلسة .

3- جلب المتغيرات من الجلسة :

$value1 = $_SESSION['var1'];
$value2 = $_SESSION['var2'];

يتم جلب القيم المخزنة مسبقاً في الجلسة وحفظها في المتغيرات $value1 و $value2 وبعد ذلك يمكنك إدخال هذه البيانات لقاعدة البيانات مباشراً في كل عملية إدخال بيانات .

تم تعديل هذه المشاركة بواسطة ahmedsaoud31 في 28 أكتوبر 2012 في 00:21

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#5
if(!isset($_SESSION)){
@session_start();
}


while($rows = mysql_fetch_assoc($query)){
 $uname = $rows['var1']
 $upass = $rows['var2']

if($var1 == ($_POST) and $var2 == ($_POST)){

  $_SESSION['svar1'] = $uname
  $_SESSION['svar2'] = $upass
echo("<b>Succssfull login :</b> ".$svar1."");
 }
}

هيك العملية 100% شغالة :lol:

تم تعديل هذه المشاركة بواسطة حسام الذهبي في 28 أكتوبر 2012 في 04:04

#6

كل عام وانتم بخير

اريد ان اضيف عما قيل فكرة

- عند تسجيل الدخول يتم عمل سيشن للبيانات المهمة مثل الاسم والبريد الاليكترونى وكلمة المرور.

- يتم عمل كوكيز لباقى البيانات التى قد تستخدمها لاحقا ويفضل تشفير الكوكيز

- يتم عمل سيشن بوقت دخول المستخدم timestamp وعند الدخول لصفحة اخرى يتم طرح timestamp الحالى من timestamp الذى تم عمله للمستخدم سابقا واذا كان اقل من 20 دقيقة يدخل المستخدم للصفحة ويتم عمل timestamp جديد .

واذا كان اكثر من 20 دقيقة يذهب لصفحة login .

اذا ترك المستخدم الصفحة لمدة . يمكن استخدام الجى كويرى لعمل الخطوة السابقة للطرح

 var t=setTimeout(function(){checkIsOnLine()},1200000)

بالتوفيق

تم تعديل هذه المشاركة بواسطة الفيل الطائر في 28 أكتوبر 2012 في 14:12

#7

اساتذتي الكرام انا شاكر لكم حسن استجابتكم لموضوعي وخاصة الاخ احمد والفيل الطائر والاخ حسام الذهبي

ولكن ما فهمت اضافة الاخ الفيل الطائر ياريت توضيح شويه

وياريت أحد يعمل المثال كاملاً وذلك للاستفادة لانني طبقت المشروح من حضراتكم ولكن بيصير خطاً

ماأدري ليه بارك الله فيكم

1
#8

السلام عليكم

اقتباس
ولكن ما فهمت اضافة الاخ الفيل الطائر ياريت توضيح شويه
بعد أن تقومي بتنفيذ الفكرة الأساسية سنقوم بشرح ما تفضل به الأخ الفيل الطائر من نقاط .
اقتباس
وياريت أحد يعمل المثال كاملاً وذلك للاستفادة لانني طبقت المشروح من حضراتكم ولكن بيصير خطاً

ماأدري ليه بارك الله فيكم

أرفقي الأكواد التي قمتي بكتابتها كاملة لنشير لك على مواضع الخطأ بها .
1

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#9

عنوان السؤال في اعتقادي غير مناسب !!

لان الجلسات شيء و الصب دومين شيء ثاني خالص وليس لهم علاقة ببعضهم

لانها هذه مجرد اختيارات يمكنك استخدامها

ففي تطبيقك حتى لو استخدمتي صب دومين , سوف تستخدمين الجلسات ايضا

لا علاقة اطلاقاً بين الاثنين الصب دومين عبارة عن رابط ابن للعنوان الكامل ( تعريب خاص ) ام الجلسات فهي متغير خاص بالسيرفر سايد

وشكراً لكم

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

#10

اخواني الكرام واساتذتي الأفاضل .. والله انا في غاية السرور لتبني مشكلتي

ولا استطيع ان اوفي فضلكم علي ... ولقد أرفقت مشروعي والذي عرفته حتى الآن بفضلكم فيه

وارفقت باقي مشكلتي لعلي أجد من حضرتكم الحل وانا شاكر جدا لكل أخ لي اتعبته واخذت من وقته الكثير

lg.zip

#11

السلام عليكم

أختي أنت تستخدمي اسم الحقل pass بينما هو في الجدول pass_school فعليك تغيير اسم الحقل في الجدول إلى pass أو العكس .

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#12

الاخ الاستاذ احمد السلام عليكم ورحمة الله وبركاته

لقد انشئت هذه الصفحات على السريفر المحلي كمحاكاة لما على السيرفر

وانشئت الجداول بهذه الأسماء اختصاراً للوقت اما ما ارسلته في المشاركة فهي الجداول الأصلية على السيرفر

الحقيقي للموقع وكله ماشي تمام على السيرفر الشخصي

ومشكلتي انني لا أعرف اخذ الحقول الثانية معي في صفحة تسجيل بيانات الطلاب

يعني مش عارفه اكمل المشروع بالمعنى الصحيح يعني صفحة تسجيل البيانات , وصفحة التعديل الخاصة بالمدرسة

وصفحة الحذف اللي تبع المدرسة ايضا وكذلك الطباعة

على العموم انا اثقلت على حضرتك اخ احمد

لك تحياتي ودعواتي لك بالصحة والعافية ومننحرمش من سيادتك ابداً

#13

وعليكم السلام ورحمة الله وبركاته

اللهم آمين , بارك الله فيك اختي الكريمة

ستجدي داخل الملف ملف باسم functions.php وملف أخر register-student.php هما ما تم إضافتهم لعملية التسجيل وحاولت قدر الإمكان إتباع إسلوبك في كتابة الكود حتى لا يكون الكود غريب أرجو أن تتطلعى عليهم وستفهمي الطريقة .

lg.zip

1

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#14

استاذي العزيز واسمح لي اقول الغالي لانك والله ما قصرت معي انا مش عارفه اوفي جميلك وتبنيك مشكلتي

فجزاك الله خير الجزاء اخي احمد وبارك لك في صحتك ووقتك وعمرك .

سؤالي الاخير استاذ احمد كيف يمكن عمل نموذج حذف وتعديل لبيانات المدرسة التي يقوم المدير بكتابة بياناتها الحالية

وايضا كيف يمكن طباعة الكشف لتسليمه .. والله انا عارف انني اتعبت حضرتك ولكن هذا هو عشمي في سيادتكم

وجزاك الله خير الجزاء

#15

السلام عليكم

بارك الله فيك أختي الكريمة يكفينا دعوة بظهر الغيب عسى أن ينفعنا بها الله .

بالنسبة لعملية الحذف والتعديل :

أولاً : ستقومي بعمل دالة باسم update مثلاً في ملف الـfunctions مسئوله عن عملية تحديث البيانات لإستدعائها عند الحاجة كبقية الدوال في ملف الـfunctions .

ثانياً : يمكن إستخدام نفس نموذج التسجيل لعملية العرض والحذف والتعديل وجميع العمليات تكون في صفحة واحده ولكن ليكون الكود واضح في الشرح سنستخدم ملفات منفصلة لكل عملية .

- إذاً سنقوم بعمل صفحة لعملية التعديل وصفحة لعملية الحذف وصفحة لعملية العرض وصفحة لعملية تحديث البيانات المعدلة .

1- صفحة عرض البيانات view.php لتعديلها أو حذفها طبعاً لعملية حذف أو تعديل بيانات أي طالب سيتم هذا من خلال معرف الطالب الفريد id_stud إذاً سنقوم بعرض البيانات وإرسال رقم الطالب id_stud عبر الرابط لكل من ملف الحذف أو التعديل كالتالي :

$school = '';	
$sql=mysql_query("SELECT id_stud,name FROM student WHERE school='$school'");
while($row = mysql_fetch_array($sql))
{
	echo "<p>".$row['id_stud']." - ".$row['name']." <a href='edit.php?id=".$row['id_stud']."' > edit </a> "." - "." <a href='delete.php?id=".$row['id_stud']."'> delete </a></p>";
}

2- في صفحة الحذف delete.php سيتم جلب الـid من الرابط لعملية الحذف كالتالي :

$sudent_id = $GET['id'];
$query = "DELETE FROM student WHERE id_stud='$sudent_id'";

3- وفي صفحة التعديل edit.php سنقوم بجلب الـid من الرابط ونستخدمة في عملية جلب البيانات من القاعدة لعملية التعديل عليها وسيستخدم نفس نموذج التسجيل ولكن سيتم إضافة البيانات للنموذج من خلال الـvalue لعناصر النوذج والتي تم جلبها من قاعدة البيانات

- ملف التعديل سيكون به نفس نموذج التسجيل الموجود في الملف register-student.php ولكن سيتم ملئ بيانات النموذج بالشكل التالي :

<?php
$sudent_id = $GET['id'];
$query = "DELETE FROM student WHERE id_stud='$sudent_id'";
$sql=mysql_query($query);
while($row = mysql_fetch_array($sql))
{
?>
<div>
	<table align="center">
		<form action="editupdate.php" method="POST">

			<tr>
				<td>Student ID</td>
				<td><input type="text" name="is_stud" value="<?php echo $row['id_stud']; ?>"></input></td>
			</tr>

			<tr>
				<td>Student Name</td>
				<td><input type="text" name="name" class="textfield" value="<?php echo $row['name']; ?>"></input></td>
			</tr>

			<tr>
				<td>Student Genral</td>
				<td>
					<?php
					if($row['kind'] == 'male')
					{
					?>
						male <input type="radio" name="kind" value="male" checked />
						female <input type="radio" name="kind" value="female"/>
					<?php
					}
					else
					{
					?>
						male <input type="radio" name="kind" value="male" />
						female <input type="radio" name="kind" value="female" checked/>
					<?php
					}
					?>
				</td>
			</tr>

			<tr>
				<td>Student Religion</td>
				<td><input type="text" name="religion" value="<?php echo $row['religion']; ?>"></input></td>
			</tr>

			<tr>
				<tr align="center">
				<td colspan="2"><input  type="submit" value="submit" id="submit"></input></td>
			</tr>
		</form>
	</table>
</div>
<div>
<?php
}
?>

4- صفحة حفظ التعديلات على قاعدة البيانات editupdate.php سيتم وضع كود لعملية تحديث البيانات في القاعدة وإستخدام دالة update التي قمنا بإنشاءها في ملف الـfunctions.php .

وبعد فهم هذه العمليات يمكن تجميع جميع هذه العمليات في صفحة التسجيل register-student.php من خلال التعامل مع البيانات المرسلة عبر الرابط بإستخدام $_GET

* بالنسبة لطباعة تقرير يمكنك عمل الإستعلام المناسب في صفحة وعرض النتائج عبارة عن جدول وهنا مثال على هذا .

تم تعديل هذه المشاركة بواسطة ahmedsaoud31 في 4 نوفمبر 2012 في 12:20

1

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#16

عفوا اختي ولكن من باب الفائدة اعتقد ان هناك مشكلة في قاعدة البيانات عندك

مثل ماقال الاخ Hamdan Taima موضوعك اختي لا علاقة له بالجلسات Sessions ولا النطاق الفرعي sub domain

تحليلك لقاعدة البيانات اعتقد غلط.

اعتقد قاعدة البيانات المفروض تكون كذا.

School
------------
ID
SchoolName
EduAdministration


Headmaster
------------
ID
Username
Password
SchoolID


Students
---------------
SN
Name
Type
Religion
SchoolID

الان تعملي البرنامج عادي عندما يدخل المدير ممكن تحفظي في الجلسة فقط رقم المدرسة SchoolID وعند اضافة طالب فقط تستخدمي رقم المدرسة لا داعي لحفظ نص المدرسة والادارة التعليمية لانه ممكن تحصل لك مشاكل

2

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

#17

السلام عليكم

- أخي محمد الموضوع في البداية كان متعلق بالجلسات .

- وبالنسبة لقاعدة البيانات على حسب فهمي للأسطر التالية أن القاعدة موجودة مسبقاً :

القصواء كتب:
لقد انشئت هذه الصفحات على السريفر المحلي كمحاكاة لما على السيرفر

وانشئت الجداول بهذه الأسماء اختصاراً للوقت اما ما ارسلته في المشاركة فهي الجداول الأصلية على السيرفر

- ولكن إن إستطعتي تغيير قاعدة البيانات فمن الأفضل كما ذكر أخي محمد إتباع القواعد الصحيحة في إنشاء قواعد البيانات العلاقية تحسباً لعدم إنهيار قواعد البيانات فيما بعد .

* وهذا لتوضيح العلاقة التي ذكرها أخي محمد بين الجداول :

School Table
------------
SchoolID		// مفتاح أساسي للجدول
SchoolName
EduAdministration


Headmaster Table
------------
HeadmasterID	// مفتاح أساسي للجدول
Username
Password
SchoolID		// مفتاح غريب من جدول المدارس


Students Table
---------------
StudentID		// مفتاح أساسي للجدول
Name
Type
Religion
SchoolID		// مفتاح غريب من جدول المدارس

- وإن أردت أن يكون الدخول بالرقم السري فقط فيمكن حذف اسم المستخدم من الجدول الثاني .

- وبالنسبة لو كان الدخول بالرقم السري فقط ولكل مدرسة رقم سري واحد للدخول للتعديل سيكفي جدولين فقط كالتالي :

School Table
------------
SchoolID		// مفتاح أساسي للجدول
SchoolName
EduAdministration
SchoolPassword

Students Table
---------------
StudentID		// مفتاح أساسي للجدول
Name
Type
Religion
SchoolID		// مفتاح غريب من جدول المدارس
1

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#18

اخواني في الله : الاخ احمد - الاخ محمد ..... السلام عليكم ورحمة الله وبركاته

ألف ألف شكر ومش عارفه أوفي فضلكم علي فلا أملك غير أن أدعو الله لكما بالصحة والعافية

ولقد قمت بتعديل الجداول كما تفضلتم واكملت باقي الصفحات والحمد لله وكل شيء صار تمام بمساعدتكم لي

وخاصة الاخ الغالي احمد الذي لم يتركني ابدا حتى استوفيت الصفحات

فبارك الله فيكم وجعلكم عوناًً للجميع ومن كل قلبي ادعو لكم بالصحة والعافية

1
#19

اخي في الله الاستاذ احمد كيف حالك لقد افتقدك لمدة يومين

والله انه قد وحشني اخلاصك وتقديمك العون لي

اخي احمد لا أطيل عليك واعذرني لانني مضطر استعين بالله ثم بك

لقد عدلت الجداول كما تفضل الاخ محمد وعدلت كل الصفحات السابقة وماشي الحال

ولكن الصفحات التالية لم تعمل ابداً لانه ايضا عند الحذف او التعديل أو الطباعة المفروض يدخل على بيان مدرسته فقط وليس البيانات كلها

صفحة التعديل والحذف والطباعة هي الباقية ومعهلش انا تعبت حضرتك

وللعلم الجداول صارت كاالاتي

الجدول الأول ( data ) يحتوى على :

Id – edara – school – pass_school

والجدول الثاني (student) يحتوى على

Id –pass_school – id_stud –birthdate- name – kind – religion

وجزاك الله خير الجزاء . احمد بك

تم تعديل هذه المشاركة بواسطة القصواء في 9 نوفمبر 2012 في 04:35

#20

الاخ العزيز / احمد سلام الله عليك ورحمته وبركاته

لقد افتقدتك مدة توقف الموقع لاعمال الصيانة

كيف حالك ارجو ان تكون بخير وفي احسن حال

والله لقد وحشتني ووحشنى كلامك ومد يدك للعون لي بارك الله فيك

اخي الرجاء قراءة آخر مشاركة لي لانني في ورطة كبيرة بسبب هذا النظام

ومعهلش انا اثقلت على حضرتك ولكني كلي أمل في ان اجد المساعدة عندك

الرجاء حل مشكلتي لانني حاولت وفشلت اكثر من مرة

وجزاك الله خير الجزاء

#21

السلام عليكم

أختي بارك الله فيك يكفي أن تشرحي ماهيه المشكلة فقط وعدم ذكر أشخاص حتى تجدي جواب من أي شخص يقرأ موضوعك !

بالنسبة للمشكلة فواضح من هيكلة الجداول أنك لم تطبقي قواعد البيانات العلاقية بالشكل السليم كما تم شرحها سابقاً , عموماً سأشرح مفهوم بسيط لتوضيح ما أعني بقواعد البيانات العلاقية :

- أنت لديك جدول باسم data به حقل معرف المدرسة الفريد واسم المدرسة وكلمة المرور للمدرسة والإدارة التعليمية , أنت تريدي وضع اسم المدرسة والإدارة والرقم السري في جدول student وهذه تعتبر عملية تكرار للبيانات الموجودة في جدول الـdata مرة أخرى في جدول الـstudent , ومن هذه الطريقة من الممكن أن تحدث مشاكل وتكون قاعدة البيانات غير متماسكة , فقط ما يجب عمله هو أخذ معرف المدرسة الفريد من جدول data ووضعه في جدول student ويسمى هذا الحقل في جدول student بحقل غريب من جدول data وبذلك نكون قد أنشأنا علاقة بين جدول data وجدول student .

- وتكون هيكلة الجدولين على النحو التالي :

data table
----------------
school_id		// معرف المدرسة حقل فريد
school_name
school_pass
edara

student table
-------------------
student_id			// معرف الطالب حقل فريد
student_name
student_kind
student_religion
student_birthdate
school_id				// معرف المدرسة حقل غريب من جدول المدارس

- والكود التالي لإنشاء الجداول بالعلاقة السابقة :

<?php
include_once("config.php");

mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die (mysql_error());

mysql_select_db(DB_DATABASE) or die (mysql_error());  
$query = "CREATE TABLE data (
school_id INT(11) NOT NULL,
school_name VARCHAR(256) NOT NULL,
school_pass VARCHAR(50) NOT NULL,
edara VARCHAR(256) NOT NULL,
PRIMARY KEY (school_id)
)";

if (mysql_query($query))
	echo "<h3>data Table Created Sucsess ! </h3>";  
else
	echo "<h3>data Table Not Created ERROR !</h3>";  

$query = "CREATE TABLE student (
student_id INT(11) NOT NULL,
student_name VARCHAR(256) NOT NULL,
student_kind VARCHAR(5) NOT NULL,
student_religion VARCHAR(50) NOT NULL,
student_birthdate DATE NOT NULL,
school_id INT(11) NOT NULL,
PRIMARY KEY (student_id),
FOREIGN KEY (school_id) REFERENCES data(school_id)
)";

if (mysql_query($query))
	echo "<h3>student Table Created Sucsess ! </h3>";  
else
	echo "<h3>student Table Not Created ERROR !</h3>";
?>

- وبالتالي أصبح الحقل الذي يربط الجدولين معاً هو school_id ولن نحتاج الآن إلا لحفظ هذا الحقل فقط مع كل طالب لنستطيع أن نصل لبيانات جدول الـ data من خلاله .

ولجلب معرف المدرسة وكلمة المرور وتخزينهم في جلسة يكون من خلال الكود التالي :

$pass = 'school password here';
$query = "SELECT school_id FROM data WHERE school_pass='$pass'";
$result = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($result) == 1)
{
	//Login ok
	$row = mysql_fetch_assoc($result);
	$_SESSION['school_id'] = $row['school_id'];
	$_SESSION['school_pass'] = $row['school_pass'];
}

- ولجلب بيانات الطلاب لمدرسة معينة لتعديلها أو حذفها أو حتى طباعتها سنستخدم الإستعلام التالي :

$school_id = $_SESSION['school_id'];
$query = "SELECT * FROM student WHERE school_id='$school_id'";

ولعمل إستعلام لجلب جميع الحقول لجميع المدارس من كلا الجدولين سيكون هذا من خلال العلاقة التي أنشأناها بين الجدولين من خلال INNER JOIN :

$query = "SELECT * FROM data INNER JOIN student ON data.school_id=student.school_id";

- طبعاً لتحديد الحقول المراد جلبها سيتم استبدال علامة * بالحقول مفصول بينها بفاصلة مع مراعاه أن يسبق اسم الحقل اسم الجدول التابع له والربط بين اسم الجدول والحقل تكون بالنقطه . وذلك في حالة تشابه اسماء بعض الحقول في الجداول .

- ولعمل إستعلام لجلب جميع الحقول لمدرسة معينة من خلال school_id من كلا الجدولين سيكون هذا من خلال العلاقة التي أنشأناها بين الجدولين من خلال INNER JOIN :

$school_id = $_SESSION['school_id'];
$query = "SELECT * FROM data INNER JOIN student ON data.school_id=student.school_id WHERE student.school_id='$school_id'";

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…