Reputation: 8239
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
Upvotes: 4
Views: 11870
Reputation: 3055
<?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>
Upvotes: 1
Reputation: 1
why not just make a status on on your data base? for example albania status show than you can use SELECT FROM country WHERE status='show'
Upvotes: -2
Reputation: 7769
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>";
?>
Upvotes: 1
Reputation: 253307
"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"
Upvotes: 2
Reputation: 655209
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 } ?>
Upvotes: 7
Reputation: 10939
If I have understood your question:
mysql_query("SELECT * FROM tbl_country WHERE country_name <> 'Algeria' ORDER BY country_name ASC")
Upvotes: 2