簡體   English   中英

PHP While循環在另一個循環內,而第一個While循環不返回其他值

[英]PHP While loop inside another and first while doesn't return other values

我對在另一個內部使用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 } } ?>

$aukciono_laimetojai_while返回: 單擊此處

$aukciono_istorija_while返回: 單擊此處

使用這2個while循環,該表如下所示:(www.i.stack.imgur.com/Os8Rx.png)(不能使用超過2個鏈接,對不起)

第二個數字出了點問題(每行0.14不應相同,只有第一個數字不正確),它應該返回3行( $r1 = mysql_fetch_assoc($aukciono_istorija_while )在數據庫中有3行)。 我不知道這里出了什么問題,使用while循環,一切都很好。 有人可以幫我嗎?

我找到了解決方案。 我應該在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 } ?> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM