我遇到了一个问题,我试图从Mysql表中删除一行。这是我写的代码:
$sql = "DELETE FROM members WHERE name='$_POST[delmember]'";
$retval = mysql_query($sql);
if(!$retval) {
die("Couldn't delete data: " . mysql_error());
}
打印我的数据库的代码:
$sql = 'SELECT name FROM members';
$retval = mysql_query($sql, $conn);
if(!$retval) {
die("Couldn't get data: " . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
if($col == $cols) {
$col = 0;
echo '</tr><tr>';
}
echo '<td align="center"><a class="stats" href="members.html?stats='.$row[0].'">' . $row[0] . '</a></td>';
$col++;
}
这实际上会“清空”该行,但会留下一个空白单元格,该单元格在我打印数据时实际显示。然后我必须去phpMyAdmin手动删除空白区域。我不明白为什么会这样做。
我仍然是初学者,编程实际上只是我的一个爱好,但如果有人能给我线索并指出正确的方向,我将不胜感激。
非常感谢!
答案 0 :(得分:1)
为了更好地学习MySQL语法,启动一个MySQL会话的控制台并直接输入一些命令。您的语法看起来正确,但我们不知道您正在使用的数据库的规则或您正在查看的视图。
很难判断您是否看到了phpMyAdmin的工件,或者是数据库某些其他方面的结果,或者是否是您用来“打印”数据的代码的结果。
答案 1 :(得分:1)
尝试这样。
$sql = "DELETE FROM members WHERE name='" . mysql_real_escape_string($_POST["delmember"]) . "'";
顺便说一下,如果name
字段不唯一,那么按名称删除用户并不是一个好主意,您应该使用id字段作为主键,并使用id进行所有操作。
另一个是使用mysqli或pdo而不是mysql。