php - 在表 PHP 中显示时删除 Sql 中的记录

标签 php mysql pdo sql-delete

我在删除我的记录时遇到问题,它会删除记录,但它总是会删除第一条记录,而不是我选择的相应数据。

function deleterec()
{
    $server = "127.0.0.1";
    $username = "root";
    $password = "";
    $database = "inventory";
    $conn = new PDO("mysql:host=$server;dbname=$database", $username, $password);
    $getstarteds = $conn->prepare("SELECT * FROM record");
    $getstarteds->execute();
    $displayrecs = $getstarteds->fetch();
    if (count($displayrecs) > 0) {
        $_SESSION['id'] = $displayrecs['id'];
        $checkrec = $conn->prepare("INSERT INTO archive SELECT * from record where id = '" . $_SESSION['id'] . "'");
        if ($checkrec->execute()) {
            $sql = "DELETE FROM record WHERE id='" . $displayrecs['id'] . "'";
            $stmt = $conn->prepare($sql);
            if ($stmt->execute()) {
                echo '<script language="javascript">';
                echo 'alert("Record is Deleted")';
                echo '</script>';
                echo "<script>setTimeout(\"location.href='main.php'\",100);</script>";
            }
        }
    }

这是我的页面。 enter image description here

这是我的 View 代码

$getstarteds = $conn->prepare("SELECT * FROM record");
$getstarteds->execute();
$displayrecs = $getstarteds->fetchAll();
echo"<table class='table table responsive' id='example'>";

foreach($displayrecs as $displayrec)
 {
  echo"<tr>";
  echo"<td>".$displayrec['eq_type']."</td>";
  echo"<td>".$displayrec['eq_num']."</td>";
  echo"<td>".$displayrec['model']."</td>";
  echo"<td>".$displayrec['serial_num']."</td>";
  echo"<td>".$displayrec['location']."</td>";
  echo"<td>".date("F j, Y",strtotime($displayrec['date_added']))."</td>";
  echo"<td><form action='main.php' method='POST'><button name='deletethis' class='btn btn-costume1'><i class='fa fa-times' aria-hidden='true'></i></button><a data-toggle='modal' data-target='#myEdit' class='btn btn-costume3'><i class='fa fa-pencil' aria-hidden='true'></i></a></form></td>";
  echo"</tr>";
 }

最佳答案

您的选择 $getstarteds = $conn->prepare("SELECT * FROM record"); 没有 WHERE 条件和这一行 $displayrecs = $getstarteds ->fetch();总是获取第一条记录

关于php - 在表 PHP 中显示时删除 Sql 中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42926335/

相关文章:

php - 比较文本字符串以查看它们是否匹配(允许存在细微差异)

PHP CLI 不使用额外的 .ini 文件

php - 使用 phpMyAdmin 同步 MySQL 远程和本地数据库

mysql - mysql中整数数组的最小存储?

php - 无法在PDO中调用mysql存储过程

php - 不同查询返回相同计数值

php - 如何在php中对同一个数组求和

php - 在内置库和项目文件中找不到引用常量的声明

android - 获取 ListView TextView 的值

PHP fetchAll PDO::FETCH_OBJ 和 json_encode 返回无效 JSON