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.
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...
}
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.
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";
}
SELECT
IF city='C7'
THEN city
ELSE 'somethingelse'
END as `city`
FROM `table` WHERE `city` = 'c7'
j'ai essayé de le faire pendant un certain temps et
$sqlcommand = 'SELECT * FROM database WHERE search="'.$searchString.'";';
fonctionne juste s'il ya deux entrées identiques, mais,
si vous remplacez
$sth = $db->prepare($sqlcommand);
$sth->execute();
$record = $sth->fetch();
if ($sth->fetchColumn() > 0){}if ($sth->fetchColumn() > 0){}
avec
if ($result){}
il fonctionne avec un seul enregistrement correspondant, espérons que cette aide.