اذهب إلى المحتوى
  • 0

العلاقات بين كيانات النظام

ايمن ميلاد

السؤال

هناك ثلاث أنواع للعلاقات بين الكينونات وهي: 

  1. علاقة واحد إلي واحد  تعني ان سجل في كيان قد يرتبط بسجل واحد لا أكثر في كيان أخر.
  2. علاقة واحد الي عديد يكون سجل من كيان قد يرتبط بسجل واحد أو أكثر في كيان اخر .
  3. علاقة عديد الي عديد تشير هذه العلاقة إلى عدة سجلات في كيان قد ترتبط بعدة سجلات في كيان أخر.

في حالة لدي 4 كيانات وهي كالتالي الطالب المشرف القسم المشاريع 

الطالب يضيف المشاريع 

الطالب يتبع القسم 

المشرف يتبع للقسم 

هل صحيح علاقات التي في الصورة ياريت توضيح اخواني الكرام 

لقطة شاشة 2024-04-18 093102.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يوجد نهج اخر يمكنك ان تتبعه يمكنك إنشاء جدول واحد يحتوي على جميع أنواع المستخدمين، وسنسميه "users" على سبيل المثال. سيتم تضمين جميع انواع المستخدمين مثل المشرف او الطالب مع تحديد  الصلاحيات الخاصة بكل مستخدم داخل هذا الجدول، هذه سيجعل النظام أكثر تنظيمًا وسهولة في الإدارة.

ثما سنقوم بربط جدول الأقسام بجدول المستخدمين بعلاقة واحد إلى متعدد، حيث يمكن لكل قسم أن يحتوي على العديد من المستخدمين. وبنفس الطريقة، سنقوم بربط جدول المستخدمين بجدول المشاريع أيضًا بعلاقة واحد إلى متعدد، مما يسمح لكل مستخدم ان يمتلك العديد من المشاريع.

والاهم هو تنظيم الصلاحيات بحيث يمكن فقط للطلاب رفع المشاريع، وهذا يمكن تحقيقه من خلال تعيين الصلاحيات بشكل دقيق داخل جدول المستخدمين.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

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

توصيل سهم بينهم او واحد او m 

علي سبيل مثال هدا اريد رسمه 

لقطة شاشة 2024-04-18 101541.png

تم التعديل في بواسطة AYMEN_1997
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

1- العلاقة بين الطالب والمشاريع
هنا قلت "الطالب M --- يضيف --- 1 المشاريع"، يعني كل طالب ممكن يضيف مشروع واحد أو أكتر، بس كل مشروع بيتم إضافته من طالب واحد بس.
لو مشروع واحد ممكن أكتر من طالب يشارك فيه، يبقى هنا لازم نغير العلاقة لتبقى M -> M (عديد لعديد).

2- العلاقة بين المشرف والقسم
"المشرف M --- يتبع --- 1 القسم"، يعني ان قسم واحد ممكن يكون فيه مشرفين كتير، بس كل مشرف بيتبع قسم واحد بس. وده منطقي لو الأقسام فيها مشرفين أكتر من واحد.

3- العلاقة بين الطالب والقسم
هنا لازم يكون فيه علاقة "يتبع" بين الطالب والقسم، لأن كل طالب لازم يكون متبع لقسم واحد.
فلو كل قسم فيه طلاب كتير، يبقى العلاقة هتكون "الطالب M --- يتبع --- 1 القسم".

عشان نحقق العلاقات الصح بين الكيانات دي، لازم نعمل بعض التعديلات على تخطيط الـ ERD عشان يعكس الحالة بشكل مظبوط:

العلاقة بين الطالب والقسم 
دي هتكون علاقة "واحد لعديد" (1->M)، لأن كل طالب بيتبع قسم واحد بس، بس القسم الواحد ممكن يكون فيه طلاب كتير.
يعني هنرسمها: الطالب (M) --- يتبع --- (1) القسم  

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 3 دقائق مضت قال Khaled Osama3:

1- العلاقة بين الطالب والمشاريع
هنا قلت "الطالب M --- يضيف --- 1 المشاريع"، يعني كل طالب ممكن يضيف مشروع واحد أو أكتر، بس كل مشروع بيتم إضافته من طالب واحد بس.
لو مشروع واحد ممكن أكتر من طالب يشارك فيه، يبقى هنا لازم نغير العلاقة لتبقى M -> M (عديد لعديد).

2- العلاقة بين المشرف والقسم
"المشرف M --- يتبع --- 1 القسم"، يعني ان قسم واحد ممكن يكون فيه مشرفين كتير، بس كل مشرف بيتبع قسم واحد بس. وده منطقي لو الأقسام فيها مشرفين أكتر من واحد.

3- العلاقة بين الطالب والقسم
هنا لازم يكون فيه علاقة "يتبع" بين الطالب والقسم، لأن كل طالب لازم يكون متبع لقسم واحد.
فلو كل قسم فيه طلاب كتير، يبقى العلاقة هتكون "الطالب M --- يتبع --- 1 القسم".

عشان نحقق العلاقات الصح بين الكيانات دي، لازم نعمل بعض التعديلات على تخطيط الـ ERD عشان يعكس الحالة بشكل مظبوط:

العلاقة بين الطالب والقسم 
دي هتكون علاقة "واحد لعديد" (1->M)، لأن كل طالب بيتبع قسم واحد بس، بس القسم الواحد ممكن يكون فيه طلاب كتير.
يعني هنرسمها: الطالب (M) --- يتبع --- (1) القسم  

نظام متبع اخي خالد هو 

طالب لديه مشروع فقط 

مشرف يتبع لقسم فقط 

مشرف يشرف علي أكثر من طالب 

طالب يشرف عليه مشرف فقط 

ممكن توضيح كيف تكون علاقة من جهة ومن جهة اخري 

يعني اين اضع واحد واين اضع m

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

 

بتاريخ 26 دقائق مضت قال AYMEN_1997:

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

توصيل سهم بينهم او واحد او m 

علي سبيل مثال هدا اريد رسمه 

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

ايضا المشرف فايمكن ان يكون المشرف لديه قسم واحد او اكثر لذال العلاقات صحيحه تمام

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 4 دقائق مضت قال Taha Khalid:

 

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

ايضا المشرف فايمكن ان يكون المشرف لديه قسم واحد او اكثر لذال العلاقات صحيحه تمام

لا لا اخي نظام متبع هو 

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

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

علاقات هيا يضيف وي يتبع 

تم التعديل في بواسطة AYMEN_1997
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 ساعة قال AYMEN_1997:

نظام متبع اخي خالد هو 

طالب لديه مشروع فقط 

مشرف يتبع لقسم فقط 

مشرف يشرف علي أكثر من طالب 

طالب يشرف عليه مشرف فقط 

ممكن توضيح كيف تكون علاقة من جهة ومن جهة اخري 

يعني اين اضع واحد واين اضع m

1- لو كل طالب ليه مشروع واحد بس: 
هنا هتكون علاقة "واحد لواحد" بين الطالب والمشروع.
في الـ ERD هنرسمها كده: الطالب (1) --- يملك --- (1) المشروع  

2- كل مشرف بيتبع قسم واحد بس:
دي علاقة "واحد لعديد" من ناحية القسم للمشرفين، يعني كل مشرف ليه قسم واحد بس، بس القسم الواحد ممكن يكون فيه مشرفين كتير.
هنرسمها: المشرف (M) --- يتبع --- (1) القسم

3,4- مشرف واحد بيشرف على طلاب كتير:  
دي علاقة "واحد لعديد" من المشرف للطلاب، يعني مشرف واحد ممكن يشرف على عدة طلاب.
هنرسمها: المشرف (1) --- يشرف --- (M) الطلاب

كده بقينا واضحين على شكل العلاقات:
- الطالب والمشروع: (1 -> 1)  
- المشرف والقسم: (1 <- M)
- المشرف والطلاب: (1 -> M)  

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 58 دقائق مضت قال AYMEN_1997:

يعني هكذا تصبح علاقات 

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

erd.png.3ff2961c10b2b93ecc46e7b7eb3c284c.png.f2a2401a04ae8fb01be1346a41798995.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 22 ساعة قال Khaled Osama3:

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

erd.png.3ff2961c10b2b93ecc46e7b7eb3c284c.png.f2a2401a04ae8fb01be1346a41798995.png

ياريت رد علي سؤال اضافة صورة طالب اخي خالد

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

انا اريد حفظ اسم صورة في قاعدة بيانات وصورة في مجلد uploads 

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

<?php
include('header.php');
?>
<!-------------------------------------------------------------------------------->
<!------------------------------------header-------------------------------------->
<!-------------------------------------------------------------------------------->

<head>
	<!-- مكتبة SweetAlert2 -->
	<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
	<style>
		.rak {
			width: 400px;
			height: 300px;
			font-size: 14px !important;
		}
	</style>

</head>
<div class="col-md-9 pan1">
	<ol class="breadcrumb" style="background-color: #fff;padding-top:8px;padding-bottom:8px;color:#000;font-size:16px;">
		<li><a href="student.php">الطلبة</a></li>
		<li class="active">اضافة طالب جديد</li>
	</ol>
</div>
</div>
<div class="row">
	<?php
	// mysql_query("set character_set_server='utf8'"); 
	// mysql_query("SET NAMES 'utf8'");
	//get subjects data
	//
	$sql3 = mysqli_query($con, "select * from teachers");
	//
	$sql1 = mysqli_query($con, "select * from departments");

	//get student data
	$sql2 = mysqli_query($con, "select * from group_names");

	//get class data
	// $sql3 = mysqli_query($con,"select * from class WHERE `stat`=1");

	?>

	<div class="col-md-9 pan1">
		<div class="panel" style="color:#000;">
			<div class="panel-body" style="font-size:14px; padding-left:40px;padding-right:40px;padding-bottom:25px;padding-top:25px;">
				<form method="POST" enctype="multipart/form-data">
					<div class="form-group" style="margin-top:10px;">
						<label> رقم القيد </label>
						<input name="num_std" type="text" class="form-control" placeholder="قم بكتابة رقم القيد هنا  ">
					</div>
					<div class="form-group" style="margin-top:10px;">
						<label> أسم الطالب </label>
						<input name="name_std" type="text" class="form-control" placeholder=" الرجاء كتابة الاسم كامل ">
					</div>
					<div class="form-group">
						<label>صورة للطالب</label>
						<input type="file" name="file" />
					</div>

					<div class="form-group" style="margin-top:10px;">
						<label> البريد الالكتروني </label>
						<input name="email_STD" type="email" class="form-control" placeholder=" الرجاء كتابة بريد الالكتروني ">
					</div>

					<div class="form-group" style="margin-top:10px;">
						<label> كلمة السر </label>
						<input name="Pass" type="Password" class="form-control" placeholder=" الرجاء كتابة كلمة السر ">
					</div>

					<!------------------------------------------------------------------------------------------------------------------------------->
					<!------------------------------------------------------------------------------------------------------------------------------->

					<div class="form-group" style="margin-top:10px;margin-bottom:25px;">
						<label> القسم </label>
						<select name="dept" class="form-control" style="height: auto;">
							<?php
							while ($row_sub = mysqli_fetch_array($sql1)) {

								echo '<option value="' . $row_sub['id_dept'] . '">' . $row_sub['Name_dept'] . '</option>';
							}
							?>
						</select>
					</div>

					<div class="form-group" style="margin-top:10px;margin-bottom:25px;">
						<label> المشرف </label>
						<select name="teah" class="form-control" style="height: auto;">
							<?php
							while ($row_std = mysqli_fetch_array($sql3)) {

								echo '<option value="' . $row_std['id_teah'] . '">' . $row_std['Name_teah'] . '</option>';
							}
							?>
						</select>
					</div>




					<div class="form-group" style="margin-top:10px;margin-bottom:25px;">
						<label> المجموعة </label>
						<select name="group_ID" class="form-control" style="height: auto;">
							<?php
							while ($row_std = mysqli_fetch_array($sql2)) {

								echo '<option value="' . $row_std['id_group'] . '">' . $row_std['Name_group'] . '</option>';
							}
							?>
						</select>
					</div>

					<!------------------------------------------------------------------------------------------------------------------------------->
					<!------------------------------------------------------------------------------------------------------------------------------->


					<button name="submit" type="submit" class="btn-blue"> إضافة <span class="ion-android-add"></span></button>
					<button type="reset" class="btn-def"> إلغاء <span class="ion-android-delete"></span></button>
				</form>
				<?php
				// mysql_query("set character_set_server='utf8'"); 
				// mysql_query("SET NAMES 'utf8'");

				if (isset($_POST['submit'])) {

					$id_std = $_POST['num_std'];

					$full_name = $_POST['name_std'];

					$dept_std = $_POST['dept'];

					$email_STD = $_POST['email_STD'];

					$pass = $_POST['Pass'];

					$group = $_POST['group_ID'];
					//
					$id_teah = $_POST['teah'];
					//
					$image = $_FILES['file']['name'];
					$target = "../uploads/" . basename($image);
					$imageFileType = strtolower(pathinfo($target, PATHINFO_EXTENSION));

					if (empty($id_std) or empty($full_name)) {
						echo "<div style='margin-top:10px;' class='text-center alert alert-danger' role='alert'><h3> الرجاء كتابة بيانات صحيحة </h3></div>";
						echo '<meta http-equiv="refresh" content="4;url=student.php" />';
					} else {
						if (filter_var($id_std, FILTER_VALIDATE_INT)) {

							$sql_std = "SELECT * FROM `student` where `Num_std`='$id_std' AND Name_std='$full_name'";
							$query_std = mysqli_query($con, $sql_std);
							$count_std = mysqli_num_rows($query_std);

							if ($count_std == 0) {
								if (
									$imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
									&& $imageFileType != "gif"
								) {
									echo "الملفات المسموح بها فقط هي JPG, JPEG, PNG, GIF.";
								} else {
									if (move_uploaded_file($_FILES['file']['tmp_name'], $target)) {
										include('../config.php');
										$sql = "INSERT INTO `student`(`Name_std`,  `Num_std`, `Email_STD` , `Password`, `dept_ID`, `group_ID`,`id_teah`,`img_std`) VALUES ( '$full_name' , $id_std , '$email_STD' , '$pass' , $dept_std , $group,$id_teah,$target )";
										// mysql_query("set character_set_server='utf8'"); 
										// mysql_query("set names 'utf8'");
										mysqli_query($con, $sql);
										echo "<script>
								Swal.fire({
									title: 'رسالة تأكيد',
									text: 'تم إضافة بيانات الطالب بنجاح!',
									icon: 'success',
									customClass: 'rak',
								});
								</script>";
										//	echo "<div style='margin-top:10px;'  class='text-center alert alert-success' role='alert'><h3> تم اضافة الطالب بنجاح </h3></div>";
										echo '<meta http-equiv="refresh" content="2;url=student.php" />';
									} else {

										echo "<div style='margin-top:10px;' class='text-center alert alert-danger' role='alert'><h3> هذا الطالب موجود مسبقا </h3></div>";
									}
									//echo $pass;

								}
							} else {
								echo "<div style='margin-top:10px;'  class='text-center alert alert-danger' role='alert'><h3> يجب ان يكون رقم القيد ارقام وليس حروف </h3></div>";
								echo '<meta http-equiv="refresh" content="50;url=student.php" />';
							}
						}
					}
				}

				?>
			</div>
		</div>
	</div>
</div>


<!-------------------------------------------------------------------------------->
<!------------------------------------Footer-------------------------------------->
<!-------------------------------------------------------------------------------->

<?php
include('footer.php');
?>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

لحفظ اسم الصورة في قاعدة البيانات والصورة نفسها في مجلد الرفع، يمكنك إجراء التعديلات التالية على الشفيرة:

-قم بتعديل نوع العمود في جدول قاعدة البيانات لتخزين اسم الملف بدلا من تخزين المسار الكامل للصورة.

-استخدم دالة move_uploaded_file() لحفظ الصورة في المجلد المحدد.

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

تأكد من تعديل هيكل جدول قاعدة البيانات بحيث يحتوي العمود المخصص لاسم الملف على نوع بيانات يمكنه تخزين أسماء الملفات.

وتأكد من أن عملية التحميل تتم بنجاح وأن الصورة تحفظ في المجلد المحدد uploads.

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

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

قمت بتغير حقل img_std  الي varchar  حجمه 255 انا اريد حفظ اسم فقط لماذا لا يحفظ كود الان 

if (isset($_POST['submit'])) {
					$id_std = $_POST['num_std'];
					$full_name = $_POST['name_std'];
					$dept_std = $_POST['dept'];
					$email_STD = $_POST['email_STD'];
					$pass = $_POST['Pass'];
					$group = $_POST['group_ID'];
					$id_teah = $_POST['teah'];
					$file_name = $_FILES['image']['name'];
					$tempname = $_FILES['image']['tmp_name'];
					$folder = "uplodas/" . $file_name;



					if (empty($id_std) or empty($full_name)) {
						echo "<div style='margin-top:10px;' class='text-center alert alert-danger' role='alert'><h3> الرجاء كتابة بيانات صحيحة </h3></div>";
						echo '<meta http-equiv="refresh" content="4;url=student.php" />';
					} else {
						if (filter_var($id_std, FILTER_VALIDATE_INT)) {
							$sql_std = "SELECT * FROM `student` where `Num_std`='$id_std' AND Name_std='$full_name'";
							$query_std = mysqli_query($con, $sql_std);
							$count_std = mysqli_num_rows($query_std);

							if ($count_std == 0) {
								$sql = "INSERT INTO `student`(`Name_std`,  `Num_std`, `Email_STD` , `Password`, `dept_ID`, `group_ID`,`id_teah`,`img_std`) VALUES ( '$full_name' , $id_std , '$email_STD' , '$pass' , $dept_std , $group,$id_teah,$file_name)";
								mysqli_query($con, $sql);
								move_uploaded_file($tempname, $folder);
								echo "<script>
								Swal.fire({
									title: 'رسالة تأكيد',
									text: 'تم إضافة بيانات الطالب بنجاح!',
									icon: 'success',
									customClass: 'rak',
								});
								</script>";
								echo '<meta http-equiv="refresh" content="2;url=student.php" />';
							} else {
								echo "<div style='margin-top:10px;' class='text-center alert alert-danger' role='alert'><h3> هذا الطالب موجود مسبقا </h3></div>";
							}
						}
					}
				} else {
					echo '<meta http-equiv="refresh" content="50;url=student.php" />';
				}







				?>

 

للعلم مجلد gpms  هو مجلد مشروع

داخله مجلد admin   وايضا يوجد مجلد uploads

 انا كود اكتبه في صفحة add_student  داخل مجلد admin  يعني مفروض يكون هكدا مسار تخزين صورة 

					$folder = "..uplodas/" . $file_name;

 

تظهر رسالة تم حفظ لكن لا يتم تخزين سجل او صورة 

								$sql = "INSERT INTO `student`(`Name_std`,  `Num_std`, `Email_STD` , `Password`, `dept_ID`, `group_ID`,`id_teah`,`img_std`) VALUES ( '$full_name' , '$id_std' , '$email_STD' , '$pass' , '$dept_std' , '$group','$id_teah','$file_name')";

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 11 ساعة قال AYMEN_1997:

قمت بتغير حقل img_std  الي varchar  حجمه 255 انا اريد حفظ اسم فقط لماذا لا يحفظ كود الان 

بتاريخ 11 ساعة قال AYMEN_1997:
older = "..uploda

 

للعلم مجلد gpms  هو مجلد مشروع

داخله مجلد admin   وايضا يوجد مجلد uploads

 انا كود اكتبه في صفحة add_student  داخل مجلد admin  يعني مفروض يكون هكدا مسار تخزين صورة 

					$folder = "..uplodas/" . $file_name;

 

تظهر رسالة تم حفظ لكن لا يتم تخزين سجل او صورة 

								$sql = "INSERT INTO `student`(`Name_std`,  `Num_std`, `Email_STD` , `Password`, `dept_ID`, `group_ID`,`id_teah`,`img_std`) VALUES ( '$full_name' , '$id_std' , '$email_STD' , '$pass' , '$dept_std' , '$group','$id_teah','$file_name')";

 

دعنا نبدأ بتحليل وإصلاح الأخطاء خطوة بخطوة.

مشكلة في استعلام SQL كان فيه غلطة في طريقة كتابة الاستعلام بتاع إدراج البيانات في الداتا بيز. لازم نتأكد ان كل القيم محاطة بعلامات اقتباس ، وان اسم العمود img_std ليه قيمة نصية صحيحة.
الاستعلام الصح هيبقى:

$sql = "INSERT INTO `student`(`Name_std`, `Num_std`, `Email_STD`, `Password`, `dept_ID`, `group_ID`, `id_teah`, `img_std`) VALUES ('$full_name', '$id_std', '$email_STD', '$pass', '$dept_std', '$group', '$id_teah', '$file_name')";

التأكد من نجاح الاستعلام لازم نتأكد ان الاستعلام اتنفذ بنجاح، ونعرض رسالة مناسبة للمستخدم:

if (mysqli_query($con, $sql)) {
    move_uploaded_file($tempname, $folder); 
    // رسالة نجاح وتحويل للصفحة التالية
} else {
    echo "<div>حدث خطأ اثناء حفظ البيانات</div>"; 
    echo mysqli_error($con);
}

لو طبقنا كل التصحيحات دي، المفروض الكود هيشتغل صح وهيحفظ بيانات الطالب وصورته في المكان المناسب.

قولي لو لسه فيه اي حاجة مش واضحة او محتاج مساعدة تانية.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 13 ساعة قال Khaled Osama3:

دعنا نبدأ بتحليل وإصلاح الأخطاء خطوة بخطوة.

مشكلة في استعلام SQL كان فيه غلطة في طريقة كتابة الاستعلام بتاع إدراج البيانات في الداتا بيز. لازم نتأكد ان كل القيم محاطة بعلامات اقتباس ، وان اسم العمود img_std ليه قيمة نصية صحيحة.
الاستعلام الصح هيبقى:

$sql = "INSERT INTO `student`(`Name_std`, `Num_std`, `Email_STD`, `Password`, `dept_ID`, `group_ID`, `id_teah`, `img_std`) VALUES ('$full_name', '$id_std', '$email_STD', '$pass', '$dept_std', '$group', '$id_teah', '$file_name')";

التأكد من نجاح الاستعلام لازم نتأكد ان الاستعلام اتنفذ بنجاح، ونعرض رسالة مناسبة للمستخدم:

if (mysqli_query($con, $sql)) {
    move_uploaded_file($tempname, $folder); 
    // رسالة نجاح وتحويل للصفحة التالية
} else {
    echo "<div>حدث خطأ اثناء حفظ البيانات</div>"; 
    echo mysqli_error($con);
}

لو طبقنا كل التصحيحات دي، المفروض الكود هيشتغل صح وهيحفظ بيانات الطالب وصورته في المكان المناسب.

قولي لو لسه فيه اي حاجة مش واضحة او محتاج مساعدة تانية.

صورة لم تحفظ في مجلد uploads وكذلك سجل في قاعدة بيانات

لماذا تظهر رسالة تم حفظ بنجاح 

تم التعديل في بواسطة AYMEN_1997
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

اذا كنت تقصد ان مسار الصوره خزن في الداتابيز ولكن الصوره نفسها لم تحفظ فحينها يجب ان تتأكد ان مسار المجلد صحيح في الكود، لو البرنامج بيشتغل من جوا مجلد admin، يبقى لازم المسار يكون "../uploads/" + اسم الملف.

شوف كويس ان رسالة "تم الحفظ بنجاح" مش بتظهر غير لما يتم تحميل الصورة ودخول البيانات في الداتابيز بشكل صحيح.

ده كود معدل بيتأكد من نجاح كل خطوة قبل ما ينتقل للخطوة اللي بعدها:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $id_std = $_POST['num_std'];
    $full_name = $_POST['name_std'];
    $dept_std = $_POST['dept'];
    $email_STD = $_POST['email_STD'];
    $pass = $_POST['Pass'];
    $group = $_POST['group_ID'];
    $id_teah = $_POST['teah'];
    $file_name = $_FILES['image']['name'];
    $tempname = $_FILES['image']['tmp_name'];
    $folder = "../uploads/" . $file_name;

    if (move_uploaded_file($tempname, $folder)) {
        $sql = "INSERT INTO student (Name_std, Num_std, Email_STD, Password, dept_ID, group_ID, id_teah, img_std) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
        $stmt = $con->prepare($sql);
        $stmt->bind_param("ssssssss", $full_name, $id_std, $email_STD, $pass, $dept_std, $group, $id_teah, $file_name);

        if ($stmt->execute()) {
            echo "تم إضافة بيانات الطالب وتحميل الصورة بنجاح!";
        } else {
            echo "خطأ في إدخال بيانات الطالب: " . $stmt->error;
        }
    } else {
        echo "خطأ في تحميل الصورة.";
    }
}

الكود ده بيتحقق الاول من نجاح تحميل الصورة، ولو نجح بيحاول يدخل البيانات في الداتابيز، ويعرض الرسالة المناسبة لو حصل خطأ في اي خطوة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 5 ساعة قال Khaled Osama3:

اذا كنت تقصد ان مسار الصوره خزن في الداتابيز ولكن الصوره نفسها لم تحفظ فحينها يجب ان تتأكد ان مسار المجلد صحيح في الكود، لو البرنامج بيشتغل من جوا مجلد admin، يبقى لازم المسار يكون "../uploads/" + اسم الملف.

شوف كويس ان رسالة "تم الحفظ بنجاح" مش بتظهر غير لما يتم تحميل الصورة ودخول البيانات في الداتابيز بشكل صحيح.

ده كود معدل بيتأكد من نجاح كل خطوة قبل ما ينتقل للخطوة اللي بعدها:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $id_std = $_POST['num_std'];
    $full_name = $_POST['name_std'];
    $dept_std = $_POST['dept'];
    $email_STD = $_POST['email_STD'];
    $pass = $_POST['Pass'];
    $group = $_POST['group_ID'];
    $id_teah = $_POST['teah'];
    $file_name = $_FILES['image']['name'];
    $tempname = $_FILES['image']['tmp_name'];
    $folder = "../uploads/" . $file_name;

    if (move_uploaded_file($tempname, $folder)) {
        $sql = "INSERT INTO student (Name_std, Num_std, Email_STD, Password, dept_ID, group_ID, id_teah, img_std) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
        $stmt = $con->prepare($sql);
        $stmt->bind_param("ssssssss", $full_name, $id_std, $email_STD, $pass, $dept_std, $group, $id_teah, $file_name);

        if ($stmt->execute()) {
            echo "تم إضافة بيانات الطالب وتحميل الصورة بنجاح!";
        } else {
            echo "خطأ في إدخال بيانات الطالب: " . $stmt->error;
        }
    } else {
        echo "خطأ في تحميل الصورة.";
    }
}

الكود ده بيتحقق الاول من نجاح تحميل الصورة، ولو نجح بيحاول يدخل البيانات في الداتابيز، ويعرض الرسالة المناسبة لو حصل خطأ في اي خطوة.

تم تحميل صورة في مجلد لكن لم يتم تخزين بيانات في جدول 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

تـاكد من أنك قمت بارسال البيانات عن طريق طباعة البيانات فى ال console قبل تخزنها.

بتاريخ 16 دقائق مضت قال AYMEN_1997:

تم تحميل صورة في مجلد لكن لم يتم تخزين بيانات في جدول 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

 

بتاريخ 42 دقائق مضت قال AYMEN_1997:

تاكدت ولم يظهر شي

هل يمكنك اخباري ما الرساله التي تظهر لك وهل توجد مشكله في التخزين في الداتابيز بالنسبه للصوره ام عموما لا يخزن اذا كان في الصوره فقط ارجو اخباري ماذا يخزن في column img_std

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...