簡體   English   中英

PHP While循環中的While循環

[英]PHP While Loop in While Loop

我已經有一段時間這個問題了,可能上次沒有正確提出這個問題。 再次涉獵后,我仍然非常困惑和困惑。

我有一個MySQL表,該表基於其中的值列出了一系列復選框(大約200個)。

我有另一個MySQL表,用戶將在其中存儲他們的首選項,當列表加載時,我希望該用戶先前在第二個MySQL表中選擇的項目成為復選框,該復選框已分配了選中標記以指示先前的選擇。 如果可以的話,請看以下內容,並指出正確的方向,我將不勝感激。

$result = mysql_query("SELECT `car` FROM `carlist` ORDER BY variety ASC");
$result2 = mysql_query("SELECT `car` FROM `lists` WHERE `username` = 'Palendrone' ORDER BY variety ASC");

if (!$result) {
    die("Query to show fields from table failed");
}

if (!$result2) {
    die("Query to show fields from table failed");
}

$fields_num = mysql_num_fields($result);
for($i=0; $i<$fields_num; $i++)
{
    $field = mysql_fetch_field($result);
}


$fields_num2 = mysql_num_fields($result2);
for($j=0; $j<$fields_num2; $j++)
{
    $field2 = mysql_fetch_field($result2);
}

while($row = mysql_fetch_row($result))
{

    while($row2 = mysql_fetch_row($result2))
    {

        if("$row2[0]" <> "$row[0]")
        {?><input type="checkbox" value="<?php echo "$row[0]"?>" name="<?php echo "$row[0]"?>" id="<?php echo "$row[0]"?>">
            <label for="<?php echo "$row[0]"?>"><?php echo "$row[0]"?></label>
            <?php
        } else
        {?><input type="checkbox" value="<?php echo "$row[0]"?>" name="<?php echo "$row[0]"?>" checked="yes" id="<?php echo "$row[0]"?>">
            <label for="<?php echo "$row[0]"?>"><?php echo "$row[0]"?></label>
            <?php
        }

    } /* end while */

} /* end while */

我想出了第一個While循環,用於加載主要的200個項目,然后針對該表中的每個輸入,與第二個while循環中的用戶選擇表進行交叉檢查,在該循環中,if語句的工作順序相反,因此進行檢查,然后取消選中。

上周,另一位用戶向我指出了從頭開始的方式,盡管我已經開始閱讀一些教程,但我還是需要弄清楚項目的最后一部分...

我建議您更改查詢策略-僅使用一種而不是兩種。 您可以檢查select list- lists的第二個成員的值。 car從下面的查詢結果中獲取空值。 如果為null,則未選中其他復選框(在第二個表中存在)。

$result = mysql_query("SELECT `carlist`.`car`, `lists`.`car`  FROM `carlist` left join `lists` on (`carlist`.`car` = `lists`.`car` and `lists`.`username` = 'Palendrone') ORDER BY `carlist`.variety ASC");

暫無
暫無

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

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