2009-08-08 53 views
2

如何從下面的列表菜單中排除一些國家?現在我的代碼將列出數據庫中的所有國家名稱。Php - 如何從mysql中排除數據

示例我想從列表菜單中排除阿爾巴尼亞國家。如何根據這些代碼來實現它。

代碼

<?php $select_country=mysql_query("SELECT * FROM tbl_country ORDER BY country_name ASC")?> 
    <select name="country" onchange="return get_country(this.value);"> 
     <option value=""><?=SELECT_COUNTRY?></option> 
     <? while($country=mysql_fetch_array($select_country)) {?> 
      <option <? if($_SESSION['getcountry']==$country['id']){ ?> selected="selected"<? }?> value="<?=$country['id']?>"> 
      <?=$country['country_name']?></option> 
     <? } ?> 
    </select> 

Mysql的

id country_name 
1 Afghanistan 
2 Aland Islands 
3 Albania 
4 Algeria 
5 American Samoa 
6 Andorra 
+4

告訴我們,你有什麼問題與阿爾巴尼亞? – 2009-08-08 12:01:29

+0

阿爾巴尼亞沒什麼問題。只是一個例子:) – wow 2009-08-08 12:08:08

回答

6

無論是排除在結果集行:

SELECT * FROM tbl_country WHERE country_name != "Albania" ORDER BY country_name ASC 

或者你用PHP跳過它:

<?php 
    while($country=mysql_fetch_array($select_country)) { 
     if ($country['country_name'] == 'Albania') { 
      continue; 
     } ?> 
    <option <?php if($_SESSION['getcountry']==$country['id']){ ?> selected="selected"<? }?> value="<?=$country['id']?>"><?=$country['country_name']?></option> 
<?php } ?> 
+0

感謝Gumbo :)工作像一個魅力 – wow 2009-08-08 11:58:20

1

如果我明白你的問題:

mysql_query("SELECT * FROM tbl_country WHERE country_name <> 'Algeria' ORDER BY country_name ASC") 
+0

他想排除阿爾巴尼亞,而不是阿爾及利亞;) – Gumbo 2009-08-08 11:48:07

2
"SELECT * FROM tbl_country WHERE country_name <> "Albania" ORDER BY country_name ASC" 

的「<>」等同於「!=」,他們都意味着「不等於」,所以在理論上應選擇的所有記錄country_name不等於定義的「阿爾巴尼亞」的表格。

我認爲,以下的作品,也:

"SELECT * FROM tbl_country WHERE country_name NOT IN("Albania","other_country_name", "another_country_name") ORDER BY country_name ASC" 
1

您可以設置要排除國家的數組...

<?php 

$excludeArray = array('Albania','United States') ; 

$select_country=mysql_query("SELECT * FROM tbl_country ORDER BY country_name ASC"); 

echo <<<HTML 
    <select name="country" onchange="return get_country(this.value);"> 
    <option value=""><?=SELECT_COUNTRY?></option> 
HTML; 

while($country=mysql_fetch_array($select_country)) { 
    if (!in_array($country['country_name'],$excludeArray)) { 
    $selected = ($_SESSION['getcountry']==$country['id'] ? 'selected="selected"' : ''); 
    echo "<option value='" . $country['id'] . "' " . $selected . ">" . $country['country_name'] . "</option>" ; 
    } 
echo "</select>"; 


?> 
1
<?php $select_country=mysql_query("SELECT * FROM tbl_country ORDER BY country_name ASC")?> 
    <select name="country" onchange="return get_country(this.value);"> 
    <option value=""><?=SELECT_COUNTRY?></option> 
    <?php 
     $exclude = array('Afghanistan', 'Andorra'); 
     while($country=mysql_fetch_array($select_country)) { 
     if(!in_array($country['name'], $exclude){ 
    ?> 
    <option <? if($_SESSION['getcountry']==$country['id']){ ?> selected="selected"<? }?> value="<?=$country['id']?>"><?=$country['country_name']?></option> 
    <? }} ?> 
    </select> 
-1

爲什麼不只是做一個您的數據庫上的狀態?例如阿爾巴尼亞狀態顯示比你可以使用SELECT FROM country WHERE status='show'