【问题标题】:Deleting Records in Sql while dsiplayed in table PHP在表PHP中显示时删除Sql中的记录
【发布时间】:2017-03-21 11:51:45
【问题描述】:

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

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

这是我的视图代码

$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>";
 }

【问题讨论】:

  • 天哪,请正确分页您的代码。那是不可能阅读的。 @bansi 谢谢你:)
  • 谢谢@bansi newbie 这里很抱歉
  • 也分享查看代码?
  • @Niklesh 这是查看代码
  • 您没有发布删除记录ID

标签: php mysql pdo sql-delete


【解决方案1】:

您选择的$getstarteds = $conn-&gt;prepare("SELECT * FROM record"); 不带WHERE 条件,这行$displayrecs = $getstarteds-&gt;fetch(); 总是获得第一条记录

【讨论】:

  • 我认为这也是问题所在。我应该如何选择它并正确删除?
  • 这取决于您,您如何获取要删除的记录的ID。例如:如果您发布您的 id,您的代码将是这样的:$conn-&gt;prepare("SELECT * FROM record WHERE id = ".$_POST['id']);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多