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 non.
Si c'est le cas, je ferai quelque chose.
.__ Si ce n'est pas le cas, je ferai autre chose.
manière préférée, 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...
}
"SELECT * FROM yourTable WHERE city = 'c7'"
"SELECT * FROM yourTable WHERE city LIKE '%c7%'"
Bien sûr, vous pouvez modifier '%c7%'
en '%c7'
ou 'c7%'
en fonction de la manière dont vous souhaitez effectuer une recherche. Pour une correspondance exacte, utilisez le premier exemple de requête.
$result = mysql_query("SELECT * FROM yourTable WHERE city = 'c7'");
$matchFound = mysql_num_rows($result) > 0 ? 'yes' : 'no';
echo $matchFound;
Vous pouvez également utiliser la condition if
à cet endroit.
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 soit stockée dans la variable $ username;
if (record_exists ( 'employee', 'username', $username )){
echo "Username is not available. Try something else.";
} else {
echo "Username is available";
}
J'ai essayé de le faire pendant un moment et $sqlcommand = 'SELECT * FROM database WHERE search="'.$searchString.'";';
ne fonctionne que 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){}
with if ($result){}
it fonctionne avec un seul enregistrement correspondant. J'espère que cela vous aidera.
SELECT
IF city='C7'
THEN city
ELSE 'somethingelse'
END as `city`
FROM `table` WHERE `city` = 'c7'