我已經有一段時間了這個問題,可能沒有正確地問上次問題。再次涉獵我仍然非常困惑和卡住。PHP雖然循環在while循環中
我有一個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個項目,則對於在該表中的每個輸入它針對在第二用戶選擇表交叉檢查而循環,在該循環我有if語句以相反的順序工作,以便不檢查它然後取消選中它。
我指出在通過在這裏的其他用戶從頭上週開始的方式,但我已經開始通過一些教程,我還挺需要讓我的項目的最後一部分釘會...
如果可能,你可以結合成一個查詢,使用'GROUP BY'?我發現任何時候我想在另一個環境中做一個循環,我的邏輯中存在一個缺陷。 – Sablefoste
我想,我明白你要去哪裏。如果這是我,我可能會抓取用戶以前選擇的所有複選框ID,然後將它們轉儲到單維數組中。在你的html文件中,當你循環複選框來創建它們時,我會爲該複選框的唯一ID運行一個簡單的'in_array'函數,並確定它是否應該被檢查 – mituw16