J'ai un script de recherche PHP qui interroge une base de données MySQL. Actuellement, lorsque aucun résultat n'est affiché, les émissions de script et l'erreur. Comment puis-je afficher un message comme "Aucun résultat n'a été trouvé" lorsque rien n'est retourné?
Mon script PHP est: P>
<?php
mysql_connect("localhost","username","password");
mysql_select_db("database");
if(!empty($_GET['q'])){
$query=mysql_real_escape_string(trim($_GET['q']));
$searchSQL="SELECT * FROM links WHERE `title` LIKE '%{$query}%' LIMIT 8";
$searchResult=mysql_query($searchSQL);
while ($row=mysql_fetch_assoc($searchResult)){
$results[]="<div class='webresult'><div class='title'><a href='{$row['url']}'>{$row['title']}</a></div><div class='desc'>{$row['description']}</div><div class='url'>{$row['url']}</div></div>";
}
echo implode($results);
}
?>
8 Réponses :
if (empty($results)) {
echo 'No results found';
} else {
echo implode($results);
}
Cela échouera dans les deux sens, car la boucle tandis que la boucle serait exécutée à ce stade, et une erreur aurait été émise.
Cela a fonctionné super pour moi! ..Merci. @Shef, la boucle tandis que les boucles vont de l'endroit où l'écho apparaît ci-dessus, il n'est pas évalué avant les déclarations de Si IF. Vous devriez au moins le tester avant de faire un commentaire. Et si vous l'avez testé, et cela n'a pas fonctionné, alors je suis intéressé à voir cette nouvelle situation de votre part.
Vous pouvez également utiliser la fonction mysql_num_rows code>, qui vous indiquera le nombre de lignes retournées par votre requête. $rows = mysql_num_rows($searchResult);
if($rows <= 0){
/* Code if there are no rows */
}
else{
/* At least one row has been found */
}
if (mysql_num_rows($searchResult) == 0) {
echo "some error message";
} else {
... process data
}
Essayez ce qui suit:
<?php
mysql_connect("localhost","username","password");
mysql_select_db("database");
if(!empty($_GET['q'])){
$query=mysql_real_escape_string(trim($_GET['q']));
$searchSQL="SELECT * FROM links WHERE `title` LIKE '%{$query}%' LIMIT 8";
$searchResult=mysql_query($searchSQL);
if(mysql_num_rows($searchResult) <= 0)
{
echo "No results";
} else {
while ($row=mysql_fetch_assoc($searchResult)){
$results[]="<div class='webresult'><div class='title'><a href='{$row['url']}'>{$row['title']}</a></div><div class='desc'>{$row['description']}</div><div class='url'>{$row['url']}</div></div>";
}
echo implode($results);
}
}
?>
Cela donnera une erreur sur la dernière ligne. Déplacer echo implore ($ résultats) code> entre les crochets.
Vous pouvez compter le nombre d'éléments dans le tableau et continuer avec votre implication ou afficher le message que vous avez mentionné.
<?php
if(count($results) > 0){
echo implode($results);
}
else {
echo "No results were found.";
}
?>
<?php
mysql_connect("localhost","username","password");
mysql_select_db("database");
if(!empty($_GET['q'])){
$query = mysql_real_escape_string(trim($_GET['q']));
$searchSQL = "SELECT * FROM links WHERE `title` LIKE '%{$query}%' LIMIT 8";
$searchResult = mysql_query($searchSQL);
// the query was run successfully
// and it returned at least a result
if(is_resource($searchResult) && mysql_num_rows($result) > 0){
while ($row=mysql_fetch_assoc($searchResult)){
$results[]="<div class='webresult'><div class='title'><a href='{$row['url']}'>{$row['title']}</a></div><div class='desc'>{$row['description']}</div><div class='url'>{$row['url']}</div></div>";
}
echo implode($results);
} else{
echo 'No Results were found';
}
}
?>
Créer une connexion MySQL et coller ce code ci-dessous
$sql="SELECT * FROM tablename WHERE columnname LIKE your variable or constant ";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count>=1){if result was found}
else {if result was not found}
?>
Que diriez-vous d'un compteur simple dans la déclaration tandis que: