tags:

views:

429

answers:

5

Hi folks, How to exclude some of countries from List Menu at below? Now my code will list all of country name from database.

Example I want to exclude Albania country from the List Menu. How to implement it according to these code.

Code

<?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
+1  A: 

If I have understood your question:

 mysql_query("SELECT * FROM tbl_country WHERE country_name <> 'Algeria' ORDER BY country_name ASC")
astropanic
He wants to exclude Albania and not Algeria ;)
Gumbo
+2  A: 

Either exclude that row from the result set:

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

Or you skip it with 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 } ?>
Gumbo
thanks Gumbo :) work like a charm
bob
+3  A: 
"SELECT * FROM tbl_country WHERE country_name <> "Albania" ORDER BY country_name ASC"

The "<>" is equivalent to "!=" and they both mean 'not equal to', so should in theory select all records from the table where country_name is not equal to the defined "Albania."

I think that the following works, also:

"SELECT * FROM tbl_country WHERE country_name NOT IN("Albania","other_country_name", "another_country_name") ORDER BY country_name ASC"
David Thomas
+2  A: 

You could set an array of the countries you wish to exclude...

<?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>";


?>
Chris J
+1  A: 
<?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>
Scharrels