【发布时间】:2016-06-17 02:00:03
【问题描述】:
我要做的是根据用户按下的按钮将值传递给变量。我创建了一个带有 while 循环的表和删除按钮,但是,正因为如此,所有按钮都具有相同的名称和 ID。当按下相应的按钮时,如何将特定的 UserID 传递给变量??
这是我的嵌入 HTML 的 PHP
<?php
$servername = "localhost";
$username = "root";
$password = "A1128857795!";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else{
echo "Connected successfully";}
mysqli_select_db($conn,'test_schema');
$sql = "SELECT * FROM userinfo;";
$retvalues = mysqli_query($conn, $sql);
if(!$retvalues)
{
die("could not get data: " . mysqli_error());
}
print("<br>");
echo "<form action='delete.php' method='POST'>";
echo"<table border='1'>";
echo"<tr align='center'>";
echo "<th>ID</th>";
echo "<th>NAME</th>";
echo "<th>GENDER</th>";
echo "</tr>";
while($row = mysqli_fetch_array($retvalues, MYSQL_ASSOC))
{
print("<tr>");
echo "<td><input type='text' name='id' value='{$row['UserID']}'/></td>". " " . "<td>{$row['FirstName']}" . " " . "{$row['LastName']}</td>" .
" " . "<td align='center'>{$row['gender']}</td>";
echo "<td><input name='Delete' value='Delete' type='submit'></td>";
print("</tr>");
}
echo "</table>";
echo "</form>";
当我按下任何按钮时,它每次都会返回表最后一行的 ID,导致 DELETE 语句总是从我的数据库中删除最后一条记录。
if(isset($_POST['id']))
{
$delUID = $_POST['id'];
$sql="DELETE FROM userinfo WHERE UserID = $delUID";
$query = mysqli_query($conn, $sql);
echo "DELETE FROM userinfo WHERE UserID = $delUID;";
}
$conn->close();
?>
欢迎任何建议。谢谢。
【问题讨论】:
-
使用 delete 让你变得更好
-
实际上你提交的是所有同名的行,所以php取最后一个值并删除最后一行
-
仍然有同样的问题,我真的不明白 if 语句如何区分按下了哪个按钮,因为它们都有相同的 id 和名称。有没有更好的方法来创建这个表??
-
btw.: 密码不错,你的 IP 是多少? :D