wow
wow

Reputation: 8239

Php - How to exclude data from mysql

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

Answers (6)

Scharrels
Scharrels

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

vicos2
vicos2

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

Chris J
Chris J

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

David Thomas
David Thomas

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

Gumbo
Gumbo

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

astropanic
astropanic

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

Related Questions