2017-06-20 32 views
2

我對使用while循環在另一個循環內有點困惑。一切都很好,第二個循環,但第一個只返回一個值,它是一樣的。PHP雖然在另一個循環內而第一個循環並沒有返回其他值

$aukciono_laimetojai_while = mysql_query("SELECT id, user_id, date, win 
    FROM tb_auction_winners WHERE user_id = 206"); 
$aukciono_istorija_while = mysql_query("SELECT user_id, aukciono_id, 
    COALESCE(SUM(bid), 0) AS bid, date FROM tb_aukciono_istorija 
    WHERE user_id = 206 GROUP BY aukciono_id"); 

while ($r1 = mysql_fetch_assoc($aukciono_istorija_while)) { 
    while ($r2 = mysql_fetch_assoc($aukciono_laimetojai_while)) { ?> 
     <tr> 
      <td><?php echo $r2['date']; ?></td> 
      <td><?php echo $r2['win'] - $r1['bid']; ?> Eur</td> 
      <td>0 Eur</td> 
      <td>Plačiau <?php echo $r2['win'] . ' - ' . $r1['bid']; ?></td> 
     </tr> 
<?php } } ?> 

$aukciono_laimetojai_while回報: click here

$aukciono_istorija_while回報:click here

使用這2個while循環,表看起來是這樣的:(www.i.stack.imgur.com/Os8Rx.png )(不能使用超過2個鏈接,對不起)

第二個數字(0.14不應該在每一行中相同,只有第一個)是錯誤的,它應該retu 3行($r1 = mysql_fetch_assoc($aukciono_istorija_while)在數據庫中有3行)。我不知道這裏出了什麼問題,使用while循環,一切都很好。請有人幫助我嗎?

+4

** **停止使用廢棄的'mysql_ *'API。使用'mysqli_ *'或'PDO' – Jens

+1

是的,我知道。我使用'mysql_ *',因爲使用'mysql_ *'的連接文件和所有腳本都很舊(PHP5.6版本),所以我不能使用它:( –

+0

爲每個循環存儲數組 – Akintunde007

回答

0

我找到了解決方案。我應該在while循環中只使用一個查詢。相反,這個代碼塊的:

$aukciono_laimetojai_while = mysql_query("SELECT id, user_id, date, win 
    FROM tb_auction_winners WHERE user_id = 206"); 
$aukciono_istorija_while = mysql_query("SELECT user_id, aukciono_id, 
    COALESCE(SUM(bid), 0) AS bid, date FROM tb_aukciono_istorija 
    WHERE user_id = 206 GROUP BY aukciono_id"); 

while ($r1 = mysql_fetch_assoc($aukciono_istorija_while)) { 
    while ($r2 = mysql_fetch_assoc($aukciono_laimetojai_while)) { ?> 
     <tr> 
      <td><?php echo $r2['date']; ?></td> 
      <td><?php echo $r2['win'] - $r1['bid']; ?> Eur</td> 
      <td>0 Eur</td> 
      <td>Plačiau <?php echo $r2['win'] . ' - ' . $r1['bid']; ?></td> 
     </tr> 
<?php } } ?> 

我應該使用這種(1個查詢,1 while循環):

$aukciono_laimetojai_ir_aukciono_istorija_while = mysql_query(" 
SELECT tai.aukciono_id tai_aukciono_id, taw.win taw_win, taw.date taw_date, 
    COALESCE(SUM(tai.bid), 0) tai_bid FROM tb_auction_winners taw 
JOIN tb_aukciono_istorija tai ON taw.id = tai.aukciono_id 
WHERE tai.user_id = $usid GROUP BY aukciono_id"); 

while ($r1 = mysql_fetch_assoc($aukciono_laimetojai_ir_aukciono_istorija_while)) { ?> 
     <tr> 
      <td><?php echo $r1['taw_date']; ?></td> 
      <td><?php echo $r1['taw_win'] - $r1['tai_bid']; ?> Eur</td> 
      <td>0 Eur</td> 
      <td class="placiau" data-aukciono-id= 
       "<?php echo $r1['tai_aukciono_id']; ?>">Plačiau</td> 
     </tr> 
<?php } ?>