النتائج 1 إلى 2 من 2

الموضوع: كيف اعدل على عدة بياننات

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    392

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



    السلام عليكم

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

    الدرس موجود على الرابط
    http://www.phpeasystep.com/mysql/10.html

    قاعد البيانات
    كود PHP:
    CREATE TABLE `test_mysql` (
    `
    idint(4NOT NULL auto_increment,
    `
    namevarchar(65NOT NULL default '',
    `
    lastnamevarchar(65NOT NULL default '',
    `
    emailvarchar(65NOT NULL default '',
    PRIMARY KEY (`id`)
    TYPE=MyISAM AUTO_INCREMENT=7;

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

    INSERT INTO `test_mysqlVALUES (1'Billly''Blueton''bb5@phpeasystep.com');
    INSERT INTO `test_mysqlVALUES (2'Jame''Campbell''jame@somewhere.com');
    INSERT INTO `test_mysqlVALUES (3'Mark''Jackson''mark@phpeasystep.com');
    INSERT INTO `test_mysqlVALUES (4'Linda''Travor''lin65@phpeasystep.com');
    INSERT INTO `test_mysqlVALUES (5'Joey''Ford''fordloi@somewhere.com');
    INSERT INTO `test_mysqlVALUES (6'Sidney''Gibson''gibson@phpeasystep.com'); 
    الكود
    كود PHP:
    <?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. #2
    عضو سوبر نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    718


    اهلا اخي الكريم ..

    خلك من شرح الموقع وخذ شرحي .. وان شاء الله تستفيد ..

    [ للمعلومية الكود كاملا في اسفل الموضوع ]

    [نأتي للشرح ]

    اولا : بعض الاساسيات والاستعراض .. لان فيه كثير يسألون عن هذه الطريقة .. لأن التعديل لحقل واحد سهل ، ولكن اللي يتعب الكثير هو عدة حقول ..

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

    + كيف ؟ << وهو خلاصة المطلوب ..

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

    نعرض البيانات ، وفي اثناء عرضنا لها ندخلها في مصفوفة .. وفي نفس الوقت نضع عداد للـ Loop لماذا ؟

    لكي نستفيد من ترتيب المصفوفة بالمفاتيح ... وإليك المثال التالي:

    كود PHP:
    $result mysql_query("select * from $tbl_name");
      
    $num mysql_num_rows($result);
      
    $co=0;
      while(
    $rows mysql_fetch_array($result))
      {
       
    extract($rows);
      echo
    '<form method="post" action="index.php?action=do">
      <p align="left">
      <table>
      <tr>
      <td><input type="hidden" name="id['
    .$co.']" value="'.$id.'" size="5">'.$id.'</td>
      <td><input type="text" name="name['
    .$co.']" value="'.$name.'" size="20"></td>
      <td><input type="text" name="email['
    .$co.']" value="'.$email.'" size="20"></td>
      <td><input type="hidden" name="count" value="'
    .$num.'"></td>';
      
    $co++;
      }
      echo
    '<td><input type="submit" value="Edit" size="20"></td>
      </tr>
      </table>
      </p>
      </form>'

    الان الحمد لله عرضنا البيانات وفي مصفوفة تتضمن مفاتيحها .. << وبعدين ..

    عملية استقبال هذه المصفوفة .. لاحظ في الكود السابق وضعنا input كخانة hidden لل count لكي نستفيد منه في استعراض هذه المصفوفة ..

    ثانيا : عملية استقبال المصفوفة ، وهذا المهم ايضا ً ..

    عندما تستدعي المصفوفة للـ id بواسطة post ففي الحقيقة ان تدعوا جميع مفاتيح المصفوفة وقيمها ..

    مثال:
    كود PHP:
    $id $_POST["id"]; 
    وكأنك تستدعيها بهذا الشكل
    كود PHP:
    array(
    [
    0] = 1
    [1] = 2
    [2] = 3
    [3] = 4
    [4] = 5
    [5] = 6

    إذا عند ادخال بيانات id يجب ان تكون بهذا الشكل : id[] .. وهنا اللعبة .. وكذلك name[] وغيرها .. وانظر كيف استفيد من الحقل المخفي للـ count الذي تكلمت عنه سابقا ً ..

    شاهد كيف ! ...

    كود PHP:
    $count $_POST['count'];
      
    $id $_POST["id"];
      
    $name $_POST["name"];
      
    $email $_POST["email"];
     
      for(
    $i=0;$i<$count;$i++)
       {
        
    $update mysql_query("update $tbl_name set name='$name[$i]',email='$email[$i]' where id=$id[$i]");
       }
      if(
    $update)
         {
          echo
    'OK';
         }else{
          echo
    'No';
         } 
    وهكذا عملنا طريقة سهله جدا في عملية تعديل البيانات لعدة سجلات دفعة واحدة .. ..


    ====== الكود كاملا =====

    كود PHP:
    <?php
    $host
    ="localhost"// Host name 
    $username="root"// Mysql username 
    $password=""// Mysql password 
    $db_name="ccc"// 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");
     
    $action $_GET['action'];
    if(
    $action == "do")
     {
      
    $count $_POST['count'];
      
    $id $_POST["id"];
      
    $name $_POST["name"];
      
    $email $_POST["email"];
     
      for(
    $i=0;$i<$count;$i++)
       {
        
    $update mysql_query("update $tbl_name set name='$name[$i]',email='$email[$i]' where id=$id[$i]");
       }
      if(
    $update)
         {
          echo
    'OK';
         }else{
          echo
    'No';
         }
     
     
     }else{
      
    $result mysql_query("select * from $tbl_name");
      
    $num mysql_num_rows($result);
      
    $co=0;
      while(
    $rows mysql_fetch_array($result))
      {
       
    extract($rows);
      echo
    '<form method="post" action="index.php?action=do">
      <p align="left">
      <table>
      <tr>
      <td><input type="hidden" name="id['
    .$co.']" value="'.$id.'" size="5">'.$id.'</td>
      <td><input type="text" name="name['
    .$co.']" value="'.$name.'" size="20"></td>
      <td><input type="text" name="email['
    .$co.']" value="'.$email.'" size="20"></td>
      <td><input type="hidden" name="count" value="'
    .$num.'"></td>';
      
    $co++;
      }
      echo
    '<td><input type="submit" value="Edit" size="20"></td>
      </tr>
      </table>
      </p>
      </form>'
    ;
     }
    وان شاء الله اكون افدتك ..





    __________________
    أخي [ محمد الفارس ] في كل رد اقول .. شكراً لك ...
    البانر.نت .. نصنع من الافكار دليل





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

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