[英]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.