我正在尝试创建一个动态表来获取数据,我可以编辑任何我想要的值

时间:2016-10-17 02:20:09

标签: php mysql

我可以获取数据,但提交按钮无效。  我对更新查询和在数组中存储数据感到困惑。 以下是在表格中获取和显示数据的代码。

     `<?php
           while ($rows=mysqli_fetch_assoc($result)){ ?>
               <tr>
               <td align="center">
               <?php $id[]=$rows['id']; ?><?php echo $rows['id']; ?>
               </td>
               <td align="center">  
               <input name="name[]" type="text" id="name" value="<?=$rows['name']; ?>">
               </td>
               <td align="center">
               <input name="lastname[]" type="text" id="lastname" value="<? =$rows['lastname']; ?>">
               </td>
               <td align="center">
               <input name="email[]" type="text" id="email" value="<?=$rows['email']; ?>">
               </td>
               </tr>

 `

以下是提交按钮的代码

if ($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["Submit"] != ""){
    $count = mysqli_num_rows($result);
        for($i=0;$i<$count;$i++){
            $sql2="UPDATE test_mysql SET name='".$_POST["name"][$i]."',lastname='".$_POST["lastname"][$i]."', email='".$_POST["email"][$i]."' WHERE id='$id[$i]'";
            $result1=mysqli_query($con, $sql2);
        }
header("Location: update-multiple-2.php");

}

1 个答案:

答案 0 :(得分:0)

如果在输出表单后处理POST(设置变量$id),并且变量$test_mysql设置为数据库中的现有表,并且所有列都存在且您只能添加或删除行(因为它会改变$id变量)然后它应该工作。

也许这可能会有所帮助:

if(!$result1=mysqli_query($con, $sql2)){
    echo 'Error: '.mysqli_error();
}

你需要以某种方式调试它:

if ($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["Submit"] != ""){
    $count = mysqli_num_rows($result);
    $error = '';
    for($i=0;$i<$count;$i++){
        $sql2="UPDATE $test_mysql SET name='".$_POST["name"][$i]."',lastname='".$_POST["lastname"][$i]."', email='".$_POST["email"][$i]."' WHERE id='$id[$i]'";
        if(mysqli_query($con, $sql2) === FALSE){
            $error .= 'SQL query failed, SQL: '.$sql2.', Error: '.mysqli_error() . "\n";        
        }
    }

    if(!$error){
        header("Location: update-multiple-2.php");
    }else{
        echo $error;
        exit();
    }
}