2017-04-19 73 views
-1

請道歉我的英語。不知道從哪裏開始多個查詢

我需要一些方向,我需要這樣做:

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

    } 

但這不線條尊重如果條件,並設置所有行pedidos完全相同的$狀態。

所以他們我已經添加了這個條件,第二個查詢:

WHERE ID =「$ ID」 < < ---但是這僅僅只改變德第一個結果。

只需要一些方向,在此先感謝。

+3

1.附加'其中id = $ id'回查詢2.取代'$結果= $ mysqli->查詢($查詢);''與$ mysqli->查詢($查詢);' –

+0

它的工作完全,你能向我解釋一下嗎? –

+1

變量'$ result'包含第一個查詢的結果,所以你不應該覆蓋它 –

回答

1

它看起來並不像你需要真正的多個查詢。您可以在更新查詢中使用第一個查詢中的WHERE條件,並使用IF function來設置適當的值。

$sql = "UPDATE pedidos 
SET estado = IF(delivery='ZICHER', 'Pagado', 'Por Cobrar') 
WHERE comprador='$comprador' 
AND estado = 'cart'"; 

$result = $mysqli->query($sql); 

我知道這不符合當前的代碼說明問題,但它看起來就像你說的意見了。

+0

嗨!偉大的選擇,我認爲這可以更快地工作。 –

+1

也許如此。通常,您必須執行的查詢次數越少越好。 –

1

使用

echo print_r($result, true); 

看到返回的結果,並相應地改變

$delivery = $row['delivery']; 

。也許你需要寫這樣的東西:

$delivery = $row[0]['delivery']; 
+0

我已經解決了我的問題,非常感謝幫助我:) –