0

我有一个显示 sql 查询结果的 html 表。该表是指Basket我的数据库中的一个表,它只是在我的网站中显示用户的篮子。在桌子上,我有一个删除按钮,一旦按下,执行 sql 查询,从用户的篮子中删除一个项目。我在 html 上使用post方法来做到这一点:

HTML

<td><form name="myForm" method="post" action="<?php $_SERVER['PHP_SELF'];?>" >
   <input type="submit" class="css3button" value="הסר"  / > 
</td>
<input type="hidden" name="product" id="product"
    value="<?php echo $product; ?>" />

PHP

if(isset($_POST['product'])){
    $removal = sprintf("DELETE FROM Basket WHERE
          Id='%s'",mysql_real_escape_string($_POST['product']));
    $remove_result = mysql_query($removal);
 }

正在完成 sql 查询并删除项目,问题是页面刷新得太快(我想)并且在我再次手动刷新页面后点击删除后再次显示同一个表,我看到了右边没有我刚刚删除的项目的表。您是否认为问题确实是在查询发生之前重新加载页面?还是另一回事?有什么解决办法吗?

谢谢!

4

1 回答 1

0

我认为在您的文件中,生成表的代码(或从数据库中选择项目的 sql 查询)在这部分之前执行,

if(isset($_POST['product'])){
  $removal = sprintf("DELETE FROM Basket WHERE Id='%s'",mysql_real_escape_string($_POST['product']));
    $remove_result = mysql_query($removal);
}

所以先生成表,然后删除生效。因此,尽管该项目已从数据库中删除,但该表仍会显示它,直到您下次重新加载页面。

只需将这部分代码放在脚本的任何其他 sql 查询之前,问题就应该得到解决。

于 2013-06-17T09:59:08.243 回答