你知道为什么我的DELETE按钮不起作用。我刚刚开始学习。
void Free_Users_db(Users** users_db, Quantity qnty)
{
free(*users_db);
*users_db = NULL;
puts("users db free");
}
我只是遗漏了一些东西,但我无法弄清楚那是什么
答案 0 :(得分:0)
1)在循环之前,代码中缺少“form”标记。这样验证方法是否为POST的条件返回false。 2)while循环中的中断将停止在第一行中迭代结果。
答案 1 :(得分:0)
首先尝试尽可能地分离你的html和你的php是一个好习惯。看看AJAX。为简单起见,运行页面顶部的所有php if语句并在底部生成html。
<?php
require("mysqli_connect.php");
if(isset($_POST['delete'])){
$id=$_POST['itemid']; //This should be escaped for security reasons to avoid sql injection
$q2="DELETE FROM contact WHERE Id='$id'";
$result=mysqli_query($db,$q2);
}
//PAGE HTML
$q="SELECT * FROM contact";
$result=mysqli_query($db,$q);
$i = 1;
while($row=mysqli_fetch_assoc($result)) {
echo "<tr>";
echo '<td>'.$i.'</td>';
echo '<td>'.$row['Name'].'</td>';
echo '<td>'.$row['Email'].'</td>';
echo '<td>'.$row['Phone'].'</td>';
echo '<td>'.$row['Text'].'</td>';
echo '<td><form action="#" method="post"><input type="hidden" name="itemid" value="'.$row['Id'].'">
<input type="submit" name="delete" value="Delete" id="delete"></form></td>';
echo "</tr>";
$i++;
}
mysqli_close($db);
?>
html是在底部生成的。每次提交foprm时,都会在页面顶部调用if语句。如果您没有提交表单,则页面正常加载。如果它不起作用,请告诉我。
另请注意,您的用户输入日期不会被清理。永远不要相信用户输入的数据,并始终认为它是坏的。准备语句或转义$ _POST变量是个好主意。