我试图创建一个动态表,其中的数据将被获取,我可以编辑我想要的任何值


I am trying to create e dynamic table where data will be fetched and I can edit any value I want

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

     `<?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");

}

如果您在输出表单后处理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();
    }
}