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

مشكلة في التعديل على البيانات...

مغلق
بدأه the_hope في 14 سبتمبر 2007 · 6 رد · 662 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ...

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

ولكن عملية التعديل ..لا تتم بشكل صحيح..

فالمفروض عن الضغط على كلم تعديل انا يقوم بفتح صفحة بها هذه البيانت للتعديل عليها ...ولكن هون لا يقوم الا باظهار ID فقط... واذا قمت بكتابة اي بيانات يقوم باضافتها كصف جديد وليس التعديل عليها...

واظن ان الخطأ بهذا الكود.. فهو يقوم بارسال ال id فقط وليست جميع البيانات... فأرجو مساعدتي به لو سمحتم ...

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

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

<body bottommargin="0" topmargin="0" rightmargin="0" leftmargin="0">
<table width="770" border="0" cellpadding="0" cellspacing="0" align="center" bgcolor="#FFFFFF">
<tr>
<td>
<img src="head3.jpg" border="0" usemap="#Map" /></td>
</tr>
  <tr>
  <td height="10">
  </td>
  </tr>
	<tr>
  <td align="center"><a href="signup.html"><img src="adduser.jpg" border="0" /></a> </td>
  </tr>
	<tr>
  <td height="10">
  </td>
  </tr>
  </tr>
  <tr>
  <td>
  <?php if (isset($_GET['addflat'])):// User wants to add a flat ?>
  <form name="addflat" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  <table width="670" border="1" cellspacing="0" cellpadding="0" align="center">
  <tr bgcolor="#0090A8">
	<td align="center" class="tableheader">ID</td>
	<td align="center" bgcolor="#0090A8" class="tableheader">Flat Number</td>
	<td align="center" class="tableheader">Reserved</td>
  </tr>
  <tr>
  <td align=center height="40"> <input name="ID" type="text"  size="9" disabled="disabled"></td>
  <td align=center> <input name="flatnumber" type="text"  size="15" ></td>
  <td align=center> <input name="reserv" type="text"  size="9"></td>
  </tr>
   <tr>
  <td colspan="3" align="center" height="40"><input name="" type="submit" value="Submit" />
  </td>
  </tr>
  </table>
	</form>

  <?php elseif (isset($_GET['editflat'])): ?>

 <table width="770" border="0" cellpadding="0" cellspacing="0" align="center" bgcolor="#FFFFFF">
  <td height="30">
  </td>
  </tr>
  <tr>
  <td>
  <form name="editflat" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  <table width="670" border="1" cellspacing="0" cellpadding="0" align="center">
  <tr bgcolor="#0090A8">
	<td align="center" class="tableheader">ID</td>
	<td align="center" bgcolor="#0090A8" class="tableheader">Flat Number</td>
	<td align="center" class="tableheader">Reserved</td>
  </tr>
  <?php
  $dbcnx = @mysql_connect('localhost', 'root', ''); 
 if (!$dbcnx) { 
   exit('<p>Unable to connect to the ' . 
	   'database server at this time.</p>'); 
 } 

 // Select the flats database 
 if (!@mysql_select_db('company')) { 
   exit('<p>Unable to locate the ' . 
	   'database at this time.</p>'); 
 } 
  if (isset($_GET['editflat'])) { 
   $ID = $_GET['editflat']; 
 $result = @mysql_query("SELECT * FROM flats WHERE ID=$ID");

 if (!$result) { 
   exit('<p>Error performing query: ' . mysql_error() . '</p>'); 
 } 
   $flatnumber = $row['flatnumber']; 
   $reserv = $row['reserv']; 
 echo '<tr>';
 echo '<td align=center> <input name="ID" type="text"  size="9" readonly="true" value="' .$ID. '"></td>';
	echo '<td align=center> <input name="flatnumber" type="text"  size="15" value="' .$flatnumber. '"></td>';
	echo '<td align=center> <input name="reserv" type="text"  size="9" value="' .$reserv. '"></td>';
 echo "</tr>";
 echo '<tr>';
 echo '<td colspan="3" align="center" height="40">';
 echo '<input name="" type="submit" value="Submit" />';
	echo'</td>';
	echo'</tr>';
	echo'</table>';
 echo '</form>';
 }

  if (isset($_GET['saveflat'])) { 
   $ID = $_GET['editflat']; 
   $sql = "UPDATE flats SET flatnumber='{$_POST['flatnumber']}',reserv='{$_POST['reserv']} WHERE ID = $ID"; 
   if (@mysql_query($sql)) { 
	 echo '<p align="center"><font size="5" color="blue">You edit the flat</font></p>'; 
   } else { 
	 echo '<p>Error edit the flat: ' . 
		 mysql_error() . '</p>'; 
   } 
 } 

  echo '</td>';
  echo ' </tr>';
  echo '<tr>';
  echo '<td height="40" bgcolor="#FFFFFF">';
  echo '<p align="center"><a href="' . $_SERVER['PHP_SELF'] . '?saveflat=' . $ID . '"><img src="save.gif" border="0" /></a></p>';
  echo '</td>';
  echo '</tr>';
   echo '</table>';

 ?>


<?php else: // Default page display 

 // Connect to the database server 
 $dbcnx = @mysql_connect('localhost', 'root', ''); 
 if (!$dbcnx) { 
   exit('<p>Unable to connect to the ' . 
	   'database server at this time.</p>'); 
 } 

 // Select the flats database 
 if (!@mysql_select_db('company')) { 
   exit('<p>Unable to locate the ' . 
	   'database at this time.</p>'); 
 } 
  // If a flat has been submitted, 
 // add it to the database.add 


 // If a flat has been deleted, 
 // remove it from the database. 
 if (isset($_GET['deleteflat'])) { 
   $ID = $_GET['deleteflat']; 
   $sql = "DELETE FROM flats WHERE ID=$ID"; 
   if (@mysql_query($sql)) { 
	 echo '<p align="center"><font size="5" color="blue">You delete a flat</font></p>'; 
   } else { 
	 echo '<p>Error deleting flat: ' . 
		 mysql_error() . '</p>'; 
   } 
 } 

 if(isset($_POST['flatnumber']) && isset($_POST['reserv'])) { 
   $flatnumber = $_POST['flatnumber']; 
   $reserv = $_POST['reserv']; 
   $sql = "INSERT INTO flats SET flatnumber='$flatnumber', flatdate=CURDATE(), reserv='$reserv'"; 
   if (@mysql_query($sql)) { 
	 echo '<p>Your flat has been added.</p>'; 
   } else { 
	 echo '<p>Error adding submitted flat: ' . 
		 mysql_error() . '</p>'; 
   } 
 } 

 // Request the ID and text of all the flats
 $result = @mysql_query('SELECT ID, flatnumber,reserv FROM flats'); 
 if (!$result) { 
   exit('<p>Error performing query: ' . mysql_error() . '</p>'); 
 } 
 echo'<table width="670" border="1" cellspacing="0" cellpadding="0" align="center" ><tr bgcolor="#0090A8"><td align="center" class="tableheader">ID</td><td align="center" class="tableheader">Flat Number</td><td align="center" class="tableheader">Reserved</td><td align="center" class="tableheader">edit</td><td align="center" class="tableheader">delete</td></tr>';
 // Display the flatse data 
 // with a "Delete this flat" link next to each. 
	while ($row = mysql_fetch_array($result)) { 
   $ID = $row['ID']; 
	  $flatnumber = $row['flatnumber']; 
   $reserv = $row['reserv']; 
 echo "<tr>";
	echo '<td align=center>' .$ID. '</td>';
	echo '<td align=center>' .$flatnumber. '</td>';
	echo '<td align=center>' .$reserv. '</td>';
 echo '<td align=center>'.'<a href="' . $_SERVER['PHP_SELF'] . '?editflat=' . $ID .'"><img src="edit1.bmp"  border="0" /></a></td>';
 echo '<td align=center>'.'<a href="' . $_SERVER['PHP_SELF'] . '?deleteflat=' . $ID . '">'.'<img src="delete.bmp" border="0" /></a></td>';
 echo "</tr>";
 }
 echo "</table>";
  mysql_free_result($result);
	  mysql_close($dbcnx);


 // When clicked, this link will load this page 
 // with the flat submission form displayed. 
 echo '<p align="center"><a href="' . $_SERVER['PHP_SELF'] . '?addflat=1"><img src="addflat.jpg" border="0" /></a></p>'; 
 endif;

  ?>

  </table>
 </td>
  </tr>
  <tr>
  <td height="40">

  </td>
  </tr>
</table>
</td>
</tr> 
</table>

<map name="Map" id="Map"><area shape="rect" coords="10,16,108,67" href="flats.php" />
</map></body>

تم تعديل هذه المشاركة بواسطة the_hope في 14 سبتمبر 2007 في 09:58

#2

مرحبا the_hope في المنتدى

لو تقسم البرنامج في صفحتين يكون افضل لك وللمتصفحين

اول مشكلة

ابحث عن هذه الاسطر:

  if (isset($_GET['editflat'])) { 
   $ID = $_GET['editflat']; 
$result = @mysql_query("SELECT * FROM flats WHERE ID=$ID");

واضف تحته مباشرة هذا السطر:

$row = mysql_fetch_array($result));

وبانسبه للتعديل

$sql = "UPDATE flats SET flatnumber='{$_POST['flatnumber']}',reserv='{$_POST['reserv']} WHERE ID = $ID";

ابي اعرف ليش انت مضيف اقواس ؟ :huh:

جرب تعدله الى هذا وشف ان شاء الله بيزبط معك

$FlatNumberFeald = $_POST['flatnumber'];
$ReserveFeald = $_POST['reserv'];

$sql = "UPDATE flats SET flatnumber='$FlatNumberFeald', reserv='$ReserveFeald' WHERE ID = $ID";

   if (@mysql_query($sql)) { 
	 echo '<p align="center"><font size="5" color="blue">You edit the flat</font></p>'; 
   } else { 
	 echo '<p>Error edit the flat: ' . mysql_error() . '</p>'; 
   }
#3

شكرا جزيلا للمساعدة ... اخوي... وقمت بالتعديل .. والحمدالله ظهرت البيانات كاملة وكل شي ولكن عند التعديل ومن ثم الضغط على submit ... حتى يتم الحفظ ...لا يقوم باستبدالها بلا باضافتها كصف جديد وبيانات جديدة ...وبالنسبة للاقواس فانا قد عملت بحث عن كود للاضافة والحذف وهكذا كانت صيغة الجملة مع الاقواس.. وبالنسبة للاضفة فهي تعمل معي لا يوجد مشكلة بها وبوجود الاقواس...

#4

فورم التعديل غير اسمه الى saveflat

<form name="saveflat" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
#5

لقد قمت بالتغير وما زال نفس المشكلة ... أعتقد اخي ان المشكلة لدي بكود اضافة بيانت .. حين انه اذا كان على الصفحة الرئيسة وقمت بعمل refresh للصفحة يقوم بتكرار اخر صف قد انشئته ويعيد انشائه وهكذا مع كل refresh للصفحة ..

هذا كود الاضافة ...

 <?php if (isset($_GET['addflat'])):// User wants to add a flat ?>
  <form name="addflat" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  <table width="670" border="1" cellspacing="0" cellpadding="0" align="center">
  <tr bgcolor="#0090A8">
	<td align="center" class="tableheader">ID</td>
	<td align="center" bgcolor="#0090A8" class="tableheader">Flat Number</td>
	<td align="center" class="tableheader">Reserved</td>
  </tr>
  <tr>
  <td align=center height="40"> <input name="ID" type="text"  size="9" disabled="disabled"></td>
  <td align=center> <input name="flatnumber" type="text"  size="15" ></td>
  <td align=center> <input name="reserv" type="text"  size="9"></td>
  </tr>
   <tr>
  <td colspan="3" align="center" height="40"><input name="" type="submit" value="Submit" />
  </td>
  </tr>
  </table>
	</form>

	if(isset($_POST['flatnumber']) && isset($_POST['reserv'])) { 
   $flatnumber = $_POST['flatnumber']; 
   $reserv = $_POST['reserv']; 
   $sql = "INSERT INTO flats SET flatnumber='$flatnumber', reserv='$reserv'"; 
   if (@mysql_query($sql)) { 
	 echo '<p>Your flat has been added.</p>'; 
   } else { 
	 echo '<p>Error adding submitted flat: ' . 
		 mysql_error() . '</p>'; 
   } 
}

وهنا الكود عند الضغط على كلمة ADD

 echo '<p align="center"><a href="' . $_SERVER['PHP_SELF'] . '?addflat=1"><img src="addflat.jpg" border="0" /></a></p>';

تم تعديل هذه المشاركة بواسطة the_hope في 14 سبتمبر 2007 في 14:03

#6

قم بتسميه ازرار الموجوده في الفورم مثل :

زر اضافه بيانات جديدة

<input name="flatnumber" type="submit" value="Submit" />

والزر اللي موجود في فورم التعديل

<input name="saveflat" type="submit" value="Submit" />

#7

لقد قمت بذللك ولكن للاسف نفس المشكلة ما زال يضيفها كصف جديد ولا يعدل عليها ويحفظها ...

هذا الموضوع مغلق.

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