Comment vérifier si la valeur existe dans une base de données MySQL

Supposons que j'ai cette table:

id | name | city
------------------
1  | n1   | c1
2  | n2   | c2
3  | n3   | c3
4  | n4   | c4

je veux vérifier si la valeur c7 existe sous la variable city ou pas.

Si c'est le cas, je vais faire quelque chose.

Si ça ne marche pas, je vais faire quelque chose d'autre.

24
demandé sur Panos 2012-07-02 15:10:18

5 réponses

de préférence, en utilisant L'extension MySQLi:

$mysqli = new mysqli(SERVER, DBUSER, DBPASS, DATABASE);
$result = $mysqli->query("SELECT id FROM mytable WHERE city = 'c7'");
if($result->num_rows == 0) {
     // row not found, do stuff...
} else {
    // do other stuff...
}
$mysqli->close();

obsolète:

$result = mysql_query("SELECT id FROM mytable WHERE city = 'c7'");
if(mysql_num_rows($result) == 0) {
     // row not found, do stuff...
} else {
    // do other stuff...
}
54
répondu Reinder Wit 2016-08-05 12:52:52

Pour Une Correspondance Exacte

"SELECT * FROM yourTable WHERE city = 'c7'"

Pour Motif / Recherche Générique

"SELECT * FROM yourTable WHERE city LIKE '%c7%'"

bien sûr, vous pouvez modifier '%c7%''%c7' ou 'c7%' dépend de la façon dont vous voulez le chercher. Pour une correspondance exacte, utilisez l'exemple de la première requête.

PHP

$result = mysql_query("SELECT * FROM yourTable WHERE city = 'c7'");
$matchFound = mysql_num_rows($result) > 0 ? 'yes' : 'no';
echo $matchFound;

vous pouvez aussi utiliser if condition.

14
répondu Blaster 2012-07-02 11:24:08

en supposant que la connexion est établie et disponible dans une portée globale;

//Check if a value exists in a table
function record_exists ($table, $column, $value) {
    global $connection;
    $query = "SELECT * FROM {$table} WHERE {$column} = {$value}";
    $result = mysql_query ( $query, $connection );
    if ( mysql_num_rows ( $result ) ) {
        return TRUE;
    } else {
        return FALSE;
    }
}

Utilisation: En supposant que la valeur à vérifier est stocké dans la variable $username;

if (record_exists ( 'employee', 'username', $username )){
    echo "Username is not available. Try something else.";
} else {
    echo "Username is available";
}
1
répondu user1979610 2017-04-27 02:58:09
SELECT
    IF city='C7'
    THEN city
    ELSE 'somethingelse'
    END as `city`
FROM `table` WHERE `city` = 'c7'
0
répondu Muhammad Raheel 2012-07-03 04:41:09

j'ai essayé de le faire pendant un certain temps et $sqlcommand = 'SELECT * FROM database WHERE search="'.$searchString.'";';

$sth = $db->prepare($sqlcommand); $sth->execute(); $record = $sth->fetch(); if ($sth->fetchColumn() > 0){}
fonctionne juste s'il ya deux entrées identiques, mais, si vous remplacez if ($sth->fetchColumn() > 0){} avec if ($result){} il fonctionne avec un seul enregistrement correspondant, espérons que cette aide.

0
répondu mushkincode 2014-08-20 05:34:01