[英]Group with PHP not in MySQL query
我有這樣的桌子
id | type
--- -----
1 | fh
--- -----
2 | fhs
--- -----
3 | so
--- -----
4 | sos
while($row = mysql_fetch_array($res)){
if($row['type'] == "fh" OR $row['type'] == "fhs"){
$name = "Flush Head Studs";
}else if($row['type'] == "so" OR $row['type'] == "sos"){
$name = "Through Standoffs";
}
$category .= '<option value="'.$row['type'].'" name="'.$row['type'].'">' . $name . '</option>';
}
上面的代碼是兩次顯示名稱。 我該怎么做,名字只在列表中一次。
您的結果是正確的! 如果您這樣更改代碼,則可以了解原因...
while($row = mysql_fetch_array($res)){
if($row['type'] == "fh" OR $row['type'] == "fhs"){
$name = "Flush Head Studs ".$row['type'];
}else if($row['type'] == "so" OR $row['type'] == "sos"){
$name = "Through Standoffs ".$row['type'];
}
$category .= '<option value="'.$row['type'].'" name="'.$row['type'].'">' . $name . '</option>';
}
如果要選擇所有類型,我建議您向表中添加描述或名稱列...因為您將所有類型都作為選擇字段中的值。
在顯示的代碼中,對於用戶可見的2種不同(和重復的) option
內容(來自$ name),您獲得了4種不同的value
屬性(來自$ row ['type'])
因此,您必須選擇以下一種方式:
1-放棄兩個value
屬性(最簡單的方法是刪除ORs
一側和OR
本身)(這也許是您所要求的)
2-也使用$ row ['type']對option
內容進行明顯的區分(但是這給出了4個選項而不是2個)
$category .= '<option value="'.$row['type'].'" name="'.$row['type'].'">' .$row['type'].' - '. $name . '</option>';
3-給我們更多的背景來理解這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.