[英]Joining same values in SQL and looping through them
考慮SQL中的此表:
REGION: COUNTRY:
Lombardia Italy
Sicily Italy
Sardinia Italy
Borgogne France
Corsica France
在PHP中,如何創建一個下拉菜單,在其中循環顯示值,我會顯示一個唯一的“國家/地區”名稱,並在其下顯示不同的區域?
據我所知,建立了一個循環以顯示所有區域,但是我需要按國家在視覺上對它們進行划分。
$rowreg=mysql_num_rows($sqlreg);
$sqlregione=mysql_query("select region from regions order by country");
for($z = 0; $z < $rowreg; $z++){
$rigareg = mysql_fetch_assoc($sqlreg);
echo"<option>". $rigareg['regione']."</option>";
我想到了一個嵌套數組,但這只會使我更加困惑。
在此先感謝您的幫助。
您希望組合框看起來像這樣:
France: Borgogne Corsica Italy: Lombardia Sicily Sardinia
您可以使用選項的value屬性將國家/地區與區域項目一起存儲。
但是,我不認為您可以真正在PHP中調整組合框,以使某些項目不可單擊並以另一種字體顯示,或者看起來像是標題。 在我看來,仍然有兩個選擇:
填充組合框的代碼:
$result = mysql_query("select country, region from regions union all select distinct country, null from regions order by country, region");
while ($row = mysql_fetch_assoc($result))
{
if(is_null($row['region']))
echo '<option value="' . $row['country'] . '" disabled>' . $row['country'] . '</option>';
else
echo '<option value="' . $row['region'] . '#' . $row['country'] . '">' . $row['region'] . '</option>';
}
如果您希望國家/地區可點擊,請刪除已disabled
。
(我不精通PHP,因此我的代碼中可能會出現一些錯誤。此外,PHP文檔已棄用mysql_query: https : //www.php.net/manual/de/function.mysql-query.php )
您可以跟蹤列表中最后一個國家的輸出。 如果當前國家/地區不同,則輸出國家/地區作為選項。 在第一個區域中,該國家/地區將與最后一個國家/地區不同(不會有任何變化)。
但是,這些國家/地區選項將可以在下拉列表中選擇。 因此,您可能需要添加驗證,以確保用戶選擇了地區而不是國家。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.