如何修改从sql表读取的行

时间:2018-10-27 18:20:33

标签: php html mysql

我在PHP中有一个想要修改其单元格的表,方法是单击“更新”链接,它应该发送所选行的数据以进行修改和更新

我一直在寻找示例,但找不到任何东西,这对php来说是很新的。任何帮助将非常有用。

while($row=mysqli_fetch_array($result)) {
    echo
'

    <form name="frmRow" method="post"   action="update.php?id='.$row['id'].' ">
    <tr>
    <td ><a href="update.php" >Update </a>  </td>
    <td><a href="delete.php">Delete</a>   </td>
    <td >'.$row['name1'].'</td>
    <td >'.$row['name2'].'</td>
    <td >'.$row['name3'].'</td>
    <td >'.$row['id'].'</td>
    </tr>
   </form>


';
}

该表填充了mysql表中的数据

这是update.php

<?php

require_once('config/config.php');

if(isset($_GET['id']))
{

    $sql='update TABLE set name1="'.$_POST['name1'].'" , 
    name2=="'.$_POST['name2'].'" , name3=='.$_POST['name3'].'    
    where id='.$_POST['id'].'    ';
    mysqli_query($connect,$sql);0
}

?>

但是GET['id']$_POST始终为空。

1 个答案:

答案 0 :(得分:0)

我不会以字符串形式回显您的表单。一个foreach循环可以在同一迭代中打印纯HTML和php。其次,您需要有输入框。

//  You wont need this if you do the while loop the way you original had it
$rows = mysqli_fetch_array($result);


<table>
foreach($rows as $row) {
// or your original method while($row = mysqli_fetch_array($result)){
<form method="post" action="update.php">
<tr>
   <td><button type="submit">Submit</button>  </td>
   <td><a href="delete.php?id=<?php echo $row['id']; ?>">Delete</a></td>
   <td ><input name='name1' value="<?php echo $row['name1']; ?>"></td>
   <td ><input name='name2' value="<?php echo $row['name2']; ?>"></td>
   <td ><input name='name3' value="<?php echo $row['name3']; ?>"></td>
   <td ><input name='id' value="<?php echo $row['id']; ?>"></td>
</tr>
</form>   
}  

</table>

还删除action="update.php?id='.$row['id'].'并仅将其action="update.php'用作get和post方法。

注意:如果没有价值,则需要在遍历结果的同时处理该问题

注意:正如已经提到的一些评论一样,您不能使用$_GET从帖子中抢夺,反之亦然