如何使用这种方法更新多行表?

时间:2015-08-21 11:54:29

标签: php mysql arrays sql-update multiple-tables

显示结果。但是当我更新时它不起作用。

我的多表结果(工作)。

               <table>
              <tr>
                 <?php
        $result = $db->prepare("SELECT * FROM famcomp WHERE app_id='". mysql_real_escape_string($app_id) ."'");
        $result->execute();
        for($i=0; $row = $result->fetch(); $i++){
          $app_id1 = $row['app_id'];
          $fullname = $row['fullname'];
          $fage = $row['fage'];
          $frel = $row['frel'];
          $fcivil = $row['fcivil'];
          $fedu = $row['fedu'];
          $foccup = $row['foccup'];
          $finco = $row['finco'];
      ?>
                <td><input type="hidden" name="app_id[]" value="<?php echo $app_id1 ?>" /></td>
                <td><input type="text" name="fullname[]" value="<?php echo $fullname ?>" class="input" /></td>
                <td><input type="text" name="fage[]" value="<?php echo $fage ?>" class="input" /></td>
                <td><input type="text" name="frel[]" value="<?php echo $frel?>" class="input" /></td>
                <td><input type="text" name="fcivil[]" value="<?php echo $fcivil?>" class="input" /></td>
                <td><input type="text" name="fedu[]" value="<?php echo $fedu ?>" class="input" /></td>
                <td><input type="text" name="foccup[]" value="<?php echo $foccup ?>" class="input" /></td>
                <td><input type="text" name="finco[]" value="<?php echo $row['finco']; ?>" class="input" /></td>
            </tr>    
            <?php
                }
            ?>
<br></table>

我的方法是:

  

注意:

     
      
  • 未定义所有索引[0] [1]
  •   
  • 未定义的索引:fullname [0]等全名[1]
  •   
$fullname=$_POST['fullname'];
    $N = count($fullname); //to get the total row of fullname
    for($i=0; $i < $N; $i++)
    mysql_query("UPDATE famcomp SET 
         fullname = '".$_POST["fullname[$i]"]."', fage = '".$_POST["fage[$i]"]."',
         frel = '".$_POST["frel[$i]"]."', fcivil = '".$_POST["fcivil[$i]"]."', 
    fedu = '".$_POST["fedu[$i]"]."', foccup = '".$_POST["foccup[$i]"]."',
         finco = '".$_POST["finco[$i]"]."'
         WHERE `app_id` = '".$_POST["app_id[$i]"]."'") 
    or die(mysql_error());

1 个答案:

答案 0 :(得分:0)

在您的更新查询中,替换每个

$_POST["fullname[$i]"], $_POST["fage[$i]"]...

依此类推,

$_POST["fullname"][$i], $_POST["fage"][$i]...