我是PHP新手并尝试显示数据库中的数据并删除它
这用于查看数据
<?php
require_once 'config.php';
$que="SELECT `Fname`, `Lname` FROM `students`";
$myRun= mysql_query($que);
$numOfRows=mysql_num_rows($myRun);
if ($numOfRows> 0) {
while($row = mysql_fetch_array($myRun)) {
echo "First Name: " . $row['Fname']. " - Last Name: " . $row['Lname'];
echo ' <a href="update.php?id="/>Edit</a>
<a href="delete.php?id="/>Delete</a><br/>';
}
} else {
echo "There isn't data to be viewed";
}
?>
此部分用于删除,但我不知道如何获取ID
<?php
require_once 'config.php';
if(isset($_GET['ID'])){
$id=$_GET['ID'];
$sql="DELETE FROM `students` WHERE `ID`=$id";
$myquery= mysql_query($sql);
if($myquery){
echo 'The Student #'.$id.'has beed deledted!';
}
}
?>
我为获取ID而做了什么,可以将其删除?
答案 0 :(得分:0)
'id'!='ID' 试试
if(isset($_GET['id'])){
$id = (int) $_GET['id'];
if ($id > 0)
$myquery= mysql_query($sql);
}
答案 1 :(得分:0)
我看到的第一个问题是你没有从数据库中查询Id。将您的第一个查询更改为:
$que="SELECT `ID`, `Fname`, `Lname` FROM `students`";
如果学生表没有id,则改变表格给它一个,并可能使它成为主键并自动递增。
然后将删除链接更改为:
<a href="delete.php?ID=<?php echo $row['ID'];?>">Delete</a>
然后将您的评论更改为:
echo 'The Student #'.$_GET['ID'].'has been deleted!';
您可能希望代替使用ID进行评论,也可以传递名字和姓氏,并说学生“Bob Smith”已被删除。为此,您可以将删除链接更改为以下
<a href="delete.php?ID=<?php echo $row['ID'];?>&Fname=<?php echo $row['Fname'];?>&Lname=<?php echo $_GET['Lname'];?>">Delete</a>
现在,您将使用与其数据库等效名称相同的名称作为GET变量的名字和姓氏,这样您就可以执行此操作:
echo 'The Student #'.$_GET['ID'].' ('.$_GET['Fname'].' '.$_GET['Lname'].') has been deleted!';
最后,如上面的评论所述,您需要在删除ID之前清除ID,以避免sql注入。
您的删除行应为:
$sql="DELETE FROM `students` WHERE `ID`=".(int)$_GET['ID'];
答案 2 :(得分:0)
可能是这个帮助,请记住,如果您显示链接,他们必须具有ID:
$que="SELECT `ID`, `Fname`, `Lname` FROM `students`";
//more code...
while($row = mysql_fetch_array($myRun)) {
echo "First Name: " . $row['Fname']. " - Last Name: " . $row['Lname'];
echo ' <a href="update.php?id="'.$row['ID'].'>Edit</a>
<a href="delete.php?id="'.$row['ID'].'>Delete</a><br/>';
}
来自评论(@Rasclatt):
if(isset($_GET['id']) && is_numeric($_GET['id'])){
$id=$_GET['id'];
然后你可以改为PDO或mysqli(PDO作为建议)
答案 3 :(得分:0)
您需要将ID参数传递给URL中的脚本。这就是$_GET['ID']
部分正在寻找的东西。
因此,您的网址将类似于http://website.com/delete_student.php?ID=5
然后,您的$id
变量将正确设置,您的查询应该有效。
如果ID值来自表单,您也可以使用$_POST['ID']
。
您还应该考虑使用mysql_real_escape_string函数来提高代码的安全性http://php.net/manual/en/function.mysql-real-escape-string.php