我正在尝试使用get-id方法删除记录。我在echo部分的php中嵌入了html。
while ($row = mysql_fetch_array($result_select)) {
echo("<tr>
<td>". $row[games_name] ."</td>
<td>" . $row['date'] . "</td>
<td> <a href='delete.php?id={$row['games_id']}'>delete</a></td>
</tr>");
}
在我的delete.php中,我输入了以下内容:
incude("includes/connection.php");
$id = $_GET["id"];
$sql = "DELETE FROM tbl_games WHERE games_id=$id";
$result = mysql_query($sql,$con).mysql_error();
if(!result){ echo "Error";}else{echo "Success";}
但它似乎不起作用。请帮忙!!
您的代码中有几个打字错误。如果您愿意,请将while循环更改为:
while ($row = mysql_fetch_array($result_select)) {
echo sprintf("
<tr>
<td>%s</td>
<td>%s</td>
<td><a href='"delete.php?id=%d'">delete</a></td>
</tr>", $row["games_name"], $row["date"], $row["games_id"]);
}
(我认为添加的sprintf()
使html更具可读性。)
您在$row[games_name]
中缺少引号,所以我更改了它。
对于您的delete.php
:
incude("includes/connection.php");
$id = isset($_GET["id"]) ? (int)$_GET["id"] : null ;
if ( !isset($id) ) {
die("Error: id not set");
}
$sql = "DELETE FROM tbl_games WHERE games_id=$id";
$result = mysql_query($sql, $con) or die(mysql_error());
if (!$result) {
echo "Error";
} else {
echo "Success";
}
确保只有在设置了?id
时才执行此操作。
将您的incude
更改为include
,将!result
更改为!$result
。
(未测试代码)
从PHP文件URL {$row['games_id']}
中删除Curly大括号{},并在删除查询中删除大括号。
$sql = "DELETE FROM tbl_games WHERE id=$id"