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

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

بدأه man in dark في 4 يوليو 2008 · 12 رد · 915 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

الدرس موجود على الرابط

http://www.phpeasystep.com/mysql/10.html

قاعد البيانات

CREATE TABLE `test_mysql` (
`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL default '',
`lastname` varchar(65) NOT NULL default '',
`email` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=7;

-- 
-- Dumping data for table `test_mysql`
--

INSERT INTO `test_mysql` VALUES (1, 'Billly', 'Blueton', 'bb5@phpeasystep.com');
INSERT INTO `test_mysql` VALUES (2, 'Jame', 'Campbell', 'jame@somewhere.com');
INSERT INTO `test_mysql` VALUES (3, 'Mark', 'Jackson', 'mark@phpeasystep.com');
INSERT INTO `test_mysql` VALUES (4, 'Linda', 'Travor', 'lin65@phpeasystep.com');
INSERT INTO `test_mysql` VALUES (5, 'Joey', 'Ford', 'fordloi@somewhere.com');
INSERT INTO `test_mysql` VALUES (6, 'Sidney', 'Gibson', 'gibson@phpeasystep.com');

الكود

<?php
$host="localhost"; // Host name 
$username=""; // Mysql username 
$password=""; // Mysql password 
$db_name="test"; // Database name 
$tbl_name="test_mysql"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

// Count table rows 
$count=mysql_num_rows($result);
?>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr> 
<td>
<table width="500" border="0" cellspacing="1" cellpadding="0">


<tr>
<td align="center"><strong>Id</strong></td>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Lastname</strong></td>
<td align="center"><strong>Email</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center"><? $id[]=$rows['id']; ?><? echo $rows['id']; ?></td>
<td align="center"><input name="name[]" type="text" id="name" value="<? echo $rows['name']; ?>"></td>
<td align="center"><input name="lastname[]" type="text" id="lastname" value="<? echo $rows['lastname']; ?>"></td>
<td align="center"><input name="email[]" type="text" id="email" value="<? echo $rows['email']; ?>"></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>
<?php
// Check if button name "Submit" is active, do this 
if($Submit){
for($i=0;$i<$count;$i++){
$sql1="UPDATE $tbl_name SET name='$name[$i]', lastname='$lastname[$i]', email='$email[$i]' WHERE id='$id[$i]'";
$result1=mysql_query($sql1);
}
}

if($result1){
header("location:update_multiple.php");
}
mysql_close();
?>

ولكن الكود لا يعمل

#2

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

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

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#3

مشكلة الكود هو الدالة header

فالدالة header لا تقبل قبلها وجود اي Space أو Output

كالدالة echo و HTML

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

<?php
if($result1){
header("location:update_multiple.php");
}
// باقي الكود
?>

I Say Nothing

#4

اخوي mana80 لقد عدلت الكود و لكن لا يعمل

<strong>Update multiple rows in mysql</strong><br> 

<?php
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="test"; // Database name 
$tbl_name="test_mysql"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

// Count table rows 
$count=mysql_num_rows($result);
?>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr> 
<td>
<table width="500" border="0" cellspacing="1" cellpadding="0">


<tr>
<td align="center"><strong>Id</strong></td>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Lastname</strong></td>
<td align="center"><strong>Email</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center"><? $id[]=$rows['id']; ?><? echo $rows['id']; ?></td>
<td align="center"><input name="name[]" type="text" id="name" value="<? echo $rows['name']; ?>"></td>
<td align="center"><input name="lastname[]" type="text" id="lastname" value="<? echo $rows['lastname']; ?>"></td>
<td align="center"><input name="email[]" type="text" id="email" value="<? echo $rows['email']; ?>"></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>
<?php
// Check if button name "Submit" is active, do this 
if($Submit){
for($i=0;$i<$count;$i++){
$sql1="UPDATE $tbl_name SET name='$name[$i]', lastname='$lastname[$i]', email='$email[$i]' WHERE id='$id[$i]'";
$result1=mysql_query($sql1);
}
}
<?php
if($result1){
header("location:update_multiple.php");
}
?>
mysql_close();
?>
#5

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

الأخت mana نبهتك أنه الدالة header يجب ألا يكون قبلها أي مخرجات بهذا يكون الكود كالآتي :

  1.  
  2. <?php
  3. if($result1){
  4. header("location:update_multiple.php");
  5. }
  6. ?>
  7. <strong>Update multiple rows in mysql</strong><br>
  8. <?php
  9. $host="localhost"; // Host name
  10. $username="root"; // MySQL username
  11. $password=""; // MySQL password
  12. $db_name="test"; // DataBase name
  13. $tbl_name="test_mysql"; // Table name
  14.  
  15. // Connect to server and select databse.
  16. mysql_connect("$host", "$username", "$password")or die("cannot connect");
  17. mysql_select_db("$db_name")or die("cannot select DB");
  18.  
  19. $sql="SELECT * FROM $tbl_name";
  20. $result=mysql_query($sql);
  21.  
  22. // Count table rows
  23. $count=mysql_num_rows($result);
  24. ?>
  25. <table width="500" border="0" cellspacing="1" cellpadding="0">
  26. <form name="form1" method="post" action="">
  27. <tr>
  28. <td>
  29. <table width="500" border="0" cellspacing="1" cellpadding="0">
  30.  
  31. <tr>
  32. <td align="center"><strong>Id</strong></td>
  33. <td align="center"><strong>Name</strong></td>
  34. <td align="center"><strong>Lastname</strong></td>
  35. <td align="center"><strong>Email</strong></td>
  36. </tr>
  37. <?php
  38. while($rows=mysql_fetch_array($result)){
  39. ?>
  40. <tr>
  41. <td align="center"><? $id[]=$rows['id']; ?><? echo $rows['id']; ?></td>
  42. <td align="center"><input name="name[]" type="text" id="name" value="<? echo $rows['name']; ?>"
    ></td>
  43. <td align="center"><input name="lastname[]" type="text" id="lastname" value="<? echo $rows['las
    tname']; ?>"></td>
  44. <td align="center"><input name="email[]" type="text" id="email" value="<? echo $rows['email'];
    ?>"></td>
  45. </tr>
  46. <?php
  47. }
  48. ?>
  49. <tr>
  50. <td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
  51. </tr>
  52. </table>
  53. </td>
  54. </tr>
  55. </form>
  56. </table>
  57. <?php
  58. // Check if button name "Submit" is active, do this
  59. if($Submit){
  60. for($i=0;$i<$count;$i++){
  61. $sql1="UPDATE $tbl_name SET name='$name[$i]', lastname='$lastname[$i]', email='$email[$i]' WHER
    E id='$id[$i]'";
  62. $result1=mysql_query($sql1);
  63. }
  64. }
  65. ?>
  66.  

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#6

اخي SIFE

لقد جربت و لكن لم يعمل الكود

#7

الاخ man in dark

لقد قمت بتجربة الكود بعد تعديل مكان الداله header واشتغل الكود جرب مرة اخرى بعد التعديل

أو ضع لنا رساله الخطأ التي تظهر لديك

تم تعديل هذه المشاركة بواسطة mana80 في 4 يوليو 2008 في 17:29

I Say Nothing

#8

اخي mana80

لا يظهر اي رسالة خطاء بحيث عند الضعط على Submit لا يظهر اي تعديل على البيانات

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

updateall.rar

#9

الاخ man in dark

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

اي ان الاسم يكون update_multiple.php

ثانيا .. الكود صحيح ويقوم بتغيير البيانات ويمكنك التأكد من ذلك من phpmyadmin

بس انا اسفة لم انتبه انه لم ينادي الداله header .

تفضل هذا الكود ان شاء الله سيعمل لديك

<?php
ob_start();
$host="localhost"; // Host name
$username="root"; // MySQL username
$password=""; // MySQL password
$db_name="test"; // DataBase name
$tbl_name="test_mysql"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

// Count table rows
$count=mysql_num_rows($result);
?>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr>
<td>
<table width="500" border="0" cellspacing="1" cellpadding="0">

<tr>
<td align="center"><strong>Id</strong></td>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Lastname</strong></td>
<td align="center"><strong>Email</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center"><? $id[]=$rows['id']; ?><? echo $rows['id']; ?></td>
<td align="center"><input name="name[]" type="text" id="name" value="<? echo $rows['name']; ?>"></td>
<td align="center"><input name="lastname[]" type="text" id="lastname" value="<? echo $rows['lastname']; ?>"></td>
<td align="center"><input name="email[]" type="text" id="email" value="<? echo $rows['email']; ?>"></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>
<?php
// Check if button name "Submit" is active, do this
if($Submit){
for($i=0;$i<$count;$i++){
$sql1="UPDATE $tbl_name SET name='$name[$i]', lastname='$lastname[$i]', email='$email[$i]' WHERE id='$id[$i]'";
$result1=mysql_query($sql1);
}
}
if($result1){
header("location:update_multiple.php");
}
ob_flush();
mysql_close();
?>

واسفة مرة اخرى ...

تم تعديل هذه المشاركة بواسطة mana80 في 4 يوليو 2008 في 18:58

I Say Nothing

#10

اخي بالنسبة لملاحظتك

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

اي ان الاسم يكون update_multiple.php

لقد عدلت التسمية

واستخدم الكود الذي و ضعته و لكن لم يعدل اي من البيانات

وكذلك تاكدت من جهه phpmyadmin لم تتغير البيانات

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

#11

بالنسبة لقاعدة البيانات فهي نفس التي قمت بوضعها

فقط في الكود غيرت (مع مايتناسب مع البيانات التي لدي , هذا الفرق الوحيد)

$username=""; // MySQL username
   $password=""; // MySQL password

وهذا الكود في المرفقات

نفس الكود الذي وضعته سابقا

update_multiple.rar

تم تعديل هذه المشاركة بواسطة mana80 في 4 يوليو 2008 في 23:35

I Say Nothing

#12

اخي لقد جربت الكود على جهازان و لكن لا يعمل الى الان

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

ارجو المساعدة

1.rar

#13

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

I Say Nothing

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