Php 不知道从何处开始多个查询

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

请为我的英语道歉

我需要一些指导,我需要这样做:

从PHP对MYSQL进行查询以选取一些行,然后对每个结果进行另一次查询

所以我写了这个:

$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);