Php 不知道从何处开始多个查询
请为我的英语道歉 我需要一些指导,我需要这样做: 从PHP对MYSQL进行查询以选取一些行,然后对每个结果进行另一次查询 所以我写了这个:Php 不知道从何处开始多个查询,php,html,conditional-statements,Php,Html,Conditional Statements,请为我的英语道歉 我需要一些指导,我需要这样做: 从PHP对MYSQL进行查询以选取一些行,然后对每个结果进行另一次查询 所以我写了这个: $query = "SELECT * FROM pedidos WHERE `comprador` = '$comprador' AND `estado` = 'cart'"; $result = $mysqli->query($query); /* array asociativo */ while($row = mysqli
$query = "SELECT * FROM pedidos WHERE `comprador` = '$comprador' AND `estado` = 'cart'";
$result = $mysqli->query($query);
/* array asociativo */
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
$id = $row['id'];
$delivery = $row['delivery'];
if($delivery =='ZICHER'){ $status = 'Pagado';} else if($delivery =='USUARIO'){ $status = 'Por Cobrar';}
$query = "UPDATE pedidos SET estado='$status' WHERE comprador='$comprador'";
$result = $mysqli->query($query);
}
但是这行不考虑if条件,并且将pedidos中的所有行设置为完全相同的$status
因此,我在第二个查询中添加了以下条件:
其中id='$id'使用
查看返回的结果和更改
$delivery = $row['delivery'];
因此。也许你需要写一些东西,比如:
$delivery = $row[0]['delivery'];
看起来您不需要为此进行多个查询。您只需使用更新查询中第一个查询的WHERE条件,以及设置适当的值
$sql = "UPDATE pedidos
SET estado = IF(delivery='ZICHER', 'Pagado', 'Por Cobrar')
WHERE comprador='$comprador'
AND estado = 'cart'";
$result = $mysqli->query($sql);
我知道这并不能解释您当前代码的问题,但您似乎已经在注释中看到了这一点。1。将其中的id=$id添加回查询2。替换$result=$mysqli->query$query;使用$mysqli->query$query;它工作得很好,您能给我解释一下吗?变量$result包含第一次查询的结果,所以您不应该太多地覆盖它!祝你今天愉快:嗨!很好的选择,我认为这可以更快。也许是这样。一般来说,您需要执行的查询越少越好。我已经解决了我的问题,非常感谢您的帮助:
$sql = "UPDATE pedidos
SET estado = IF(delivery='ZICHER', 'Pagado', 'Por Cobrar')
WHERE comprador='$comprador'
AND estado = 'cart'";
$result = $mysqli->query($sql);