PHP在执行查询之前刷新页面

PHP在执行查询之前刷新页面,php,Php,我正在创建一个网页,每次重新加载页面时,该网页都会从数据库中的一个表(“产品”表)中随机加载一个产品。登录用户(用户必须登录)可以选择是否将该产品添加到其个人收藏夹(存储在“收藏夹”表中)。每次用户单击相应的按钮将该产品添加到其收藏夹时,网页都会重新加载并显示另一个新的随机项目。问题是,在执行查询之前,网页可能会重新加载,因此“新”项会添加到他们的收藏夹中。有人知道我怎么解决这个问题吗?到目前为止,我得到的是: HTML 首先,PDO。。。总是:P 但要回答您的问题,您需要将产品id与$GET

我正在创建一个网页,每次重新加载页面时,该网页都会从数据库中的一个表(“产品”表)中随机加载一个产品。登录用户(用户必须登录)可以选择是否将该产品添加到其个人收藏夹(存储在“收藏夹”表中)。每次用户单击相应的按钮将该产品添加到其收藏夹时,网页都会重新加载并显示另一个新的随机项目。问题是,在执行查询之前,网页可能会重新加载,因此“新”项会添加到他们的收藏夹中。有人知道我怎么解决这个问题吗?到目前为止,我得到的是:

HTML


首先,PDO。。。总是:P


但要回答您的问题,您需要将产品id与$GET['like']一起发送,以便知道他们选择了哪种产品。因为每次加载时都会从数据库中随机选择一个

在当前状态下,这是您的最佳选择。 但请考虑移到PDO,因为您提到登录的用户和产品。


*链接到肖恩(评论)

首先,PDO。。。总是:P


但要回答您的问题,您需要将产品id与$GET['like']一起发送,以便知道他们选择了哪种产品。因为每次加载时都会从数据库中随机选择一个

在当前状态下,这是您的最佳选择。 但请考虑移到PDO,因为您提到登录的用户和产品。


*链接到Sean(comment)

您的问题是,当页面刷新时,您首先从数据库中获取新数据,然后保存旧数据,然后用新数据替换旧数据

显然,您需要在GET参数中传输旧的产品id。有许多选项可以执行此操作,例如创建隐藏字段

echo "<input type=\"hidden\" name=\"oldProductId\" value=\"$productid\">

然后将其写入收藏夹表。

您的问题是,当页面刷新时,您首先从数据库中获取新数据,然后保存旧数据,然后用新数据替换旧数据

显然,您需要在GET参数中传输旧的产品id。有许多选项可以执行此操作,例如创建隐藏字段

echo "<input type=\"hidden\" name=\"oldProductId\" value=\"$productid\">

然后将其写入收藏夹表。

实际上,您的PHP代码只会获取一个随机项,然后在用户单击“喜欢”时保存它。您应该在表单上输出产品ID,如下所示:

<form method="get">
    <input type="hidden" name="current_product_id" value="<?php echo $productid; ?>">
    <button type="submit" name="like">
    <img class="add-to-favorites" src="image.png">
    </button>
</form>
现在,如果你点击like,那么
$\u GET['current\u product\u id']
将拥有当前产品,然后我在隐藏输入中输出新的随机产品id,以便下一项也能工作


也:“强>重要,考虑使用MySQL函数代替MySqL**函数,因为这些最后一个被禁止< /强>:

< P>,实际上,PHP代码只得到一个随机项,然后如果用户单击,则保存它。您应该在表单上输出产品ID,如下所示:

<form method="get">
    <input type="hidden" name="current_product_id" value="<?php echo $productid; ?>">
    <button type="submit" name="like">
    <img class="add-to-favorites" src="image.png">
    </button>
</form>
现在,如果你点击like,那么
$\u GET['current\u product\u id']
将拥有当前产品,然后我在隐藏输入中输出新的随机产品id,以便下一项也能工作


也:“强>重要,考虑使用MySQLI**函数代替MySQL**函数,因为这些最后一个被禁止< /强>:

不链接到W3Sukes,当这里有一个更好的SQL注入示例时,^ ^谢谢,我查了一下,发现了一些,但它们不是很好的例子。不要链接到W3Chanes,当这里有一个关于sql注入的更好的例子时,所以-^^^谢谢,我查了一下,发现了一些,但它们不是好的例子。
<form method="get">
    <input type="hidden" name="current_product_id" value="<?php echo $productid; ?>">
    <button type="submit" name="like">
    <img class="add-to-favorites" src="image.png">
    </button>
</form>
if(isset($_GET['like'])){
    $SQL = "INSERT INTO Favorites (user_id,product_id) VALUES ('$user_id','$_GET[current_product_id]')";
    $result = mysql_query($SQL);
}

$sSQLQuery = "SELECT product_id FROM Products ORDER BY RAND()";
$aResult = mysql_query($sSQLQuery);  
$aRow = mysql_fetch_array($aResult, MYSQL_ASSOC);
$productid = $aRow['product_id'];