Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用一个链接执行两个操作时出现问题_Php_Mysql - Fatal编程技术网

Php 使用一个链接执行两个操作时出现问题

Php 使用一个链接执行两个操作时出现问题,php,mysql,Php,Mysql,我正在用php制作一个简单的购物车程序。 下面的代码所做的是更新当前页面,以便购买的产品数量将归零。然后我尝试将它链接到另一个页面,该页面执行另一个操作(更新数据库)。 对于我编写的这段实验代码,我能做些什么: echo "<td> <a href=\"$_SERVER[PHP_SELF]?action=zeroline&id=$product_id&commitbuy.php?ids=$id&qoh=$qtyhand&qtb=$quan

我正在用php制作一个简单的购物车程序。 下面的代码所做的是更新当前页面,以便购买的产品数量将归零。然后我尝试将它链接到另一个页面,该页面执行另一个操作(更新数据库)。 对于我编写的这段实验代码,我能做些什么:

    echo "<td>
<a href=\"$_SERVER[PHP_SELF]?action=zeroline&id=$product_id&commitbuy.php?ids=$id&qoh=$qtyhand&qtb=$quantity\">
<img src=\"http://localhost/onlinestore/img/system/accept-icon.png\"></img></a>
</td>";
echo”
";
更新当前页面的部分似乎正在工作,但更新数据库的部分不工作。 如您所见,我只是将这2个(PHP_SELF,即viewcart.PHP,然后是commitbuy.PHP)与一个符号链接在一起

我是否应该将更新的代码放在viewcart.php中?
正确的方法是什么。

您应该查看web服务器的日志,您将看到只进行了一次调用,它包含整个
href

符号用于分隔URL中的查询字符串参数,而不是分隔多个URL,因此它可以一次性从客户端发送

至少有两个原因让你不想打两个电话:用户体验——打两个电话可能需要更长的时间;可靠性——如果数据库更新失败怎么办


您知道该模型吗?

是的,除非您使用Ajax同时向服务器发送两个不同的请求(并且有充分的理由),否则您应该在后端PHP中处理一个操作的所有相关业务逻辑。即使使用Ajax,我也无法想象逻辑需要多于一个请求,在成功时使用Javascript/jQuery将接口中的数量更新为零

正如@martin之前提到的,在确信第一个动作确实成功之前,您不想触发第二个依赖动作