簡體   English   中英

在SQL中聯接相同的值並遍歷它們

[英]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中調整組合框,以使某些項目不可單擊並以另一種字體顯示,或者看起來像是標題。 在我看來,仍然有兩個選擇:

  1. 使國家/地區可點擊,並在用戶錯誤選擇時提醒用戶。
  2. 使國家/地區禁用物品。

填充組合框的代碼:

$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.

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