Problème affichage texte selon recherche
Résolu
Lolo
-
Lolo -
Lolo -
Bonjour,
Lorsque l'on tape une recherche dans mon moteur de recherche il affiche des photos correspondantes mais lorsqu'il n'y en a pas je souhaiterais qu'il affiche un message type : Il n'y a aucun résultat correspondant à votre recherche.
J'ai utilisé un booléen et ça marche dans l'ensemble sauf que il me marque le message "d'erreur" même quand la recherche est bonne. Il affiche les photos + message.
Voici mon code :
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);
$req = $bdd->prepare('SELECT chemin FROM cliches WHERE categorie = ? OR nom = ? OR prix = ?');
$req->execute(array($_POST['photos'], $_POST['photos'], $_POST['photos']));
// On affiche chaque entrée une à une
while ($donnees = $req->fetch())
{
echo '<p><img src="'.$donnees['chemin'].'"/></p>';
}
if (!$donnees)
{
echo "Il n y a pas de résultats correspondants à votre recherche";
}
$req->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>
Quel est le problème ?
Lorsque l'on tape une recherche dans mon moteur de recherche il affiche des photos correspondantes mais lorsqu'il n'y en a pas je souhaiterais qu'il affiche un message type : Il n'y a aucun résultat correspondant à votre recherche.
J'ai utilisé un booléen et ça marche dans l'ensemble sauf que il me marque le message "d'erreur" même quand la recherche est bonne. Il affiche les photos + message.
Voici mon code :
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);
$req = $bdd->prepare('SELECT chemin FROM cliches WHERE categorie = ? OR nom = ? OR prix = ?');
$req->execute(array($_POST['photos'], $_POST['photos'], $_POST['photos']));
// On affiche chaque entrée une à une
while ($donnees = $req->fetch())
{
echo '<p><img src="'.$donnees['chemin'].'"/></p>';
}
if (!$donnees)
{
echo "Il n y a pas de résultats correspondants à votre recherche";
}
$req->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>
Quel est le problème ?
A voir également:
- Problème affichage texte selon recherche
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
5 réponses
Essaie de changer
{
echo '<p><img src="'.$donnees['chemin'].'"/></p>';
}
if (!$donnees)
{
echo "Il n y a pas de résultats correspondants à votre recherche";
}
par
{
echo '<p><img src="'.$donnees['chemin'].'"/></p>';
}
if (!isset($donnees) || empty($donnees))
{
echo "Il n y a pas de résultats correspondants à votre recherche";
}
{
echo '<p><img src="'.$donnees['chemin'].'"/></p>';
}
if (!$donnees)
{
echo "Il n y a pas de résultats correspondants à votre recherche";
}
par
{
echo '<p><img src="'.$donnees['chemin'].'"/></p>';
}
if (!isset($donnees) || empty($donnees))
{
echo "Il n y a pas de résultats correspondants à votre recherche";
}
Bonjour,
Merci pour vos réponses mais aucunes ne fonctionnent.
J'ai toujours le même résultat : photos + message (message ci-dessus) et/ou photos quand la recherche est valable et rien quand elle ne l'est pas (page blanche exemple ci-dessous).
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);
$req = $bdd->prepare('SELECT chemin FROM cliches WHERE categorie = ? OR nom = ? OR prix = ?');
$req->execute(array($_POST['photos'], $_POST['photos'], $_POST['photos']));
// On affiche chaque entrée une à une
while ($donnees = $req->fetch())
{
echo '<p><img src="'.$donnees['chemin'].'"/></p>';
}
if (!$req)
{
echo "Il n y a pas de résultats correspondants à votre recherche";
}
$req->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>
Avez vous d'autres idées ?
Merci pour vos réponses mais aucunes ne fonctionnent.
J'ai toujours le même résultat : photos + message (message ci-dessus) et/ou photos quand la recherche est valable et rien quand elle ne l'est pas (page blanche exemple ci-dessous).
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);
$req = $bdd->prepare('SELECT chemin FROM cliches WHERE categorie = ? OR nom = ? OR prix = ?');
$req->execute(array($_POST['photos'], $_POST['photos'], $_POST['photos']));
// On affiche chaque entrée une à une
while ($donnees = $req->fetch())
{
echo '<p><img src="'.$donnees['chemin'].'"/></p>';
}
if (!$req)
{
echo "Il n y a pas de résultats correspondants à votre recherche";
}
$req->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>
Avez vous d'autres idées ?
Au lieu de ton code, essaies peut-être ça:
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
$req = $bdd->prepare('SELECT chemin FROM cliches WHERE categorie = ? OR nom = ? OR prix = ?');
$req->execute(array($_POST['photos'], $_POST['photos'], $_POST['photos']));
// On affiche chaque entrée une à une
while ($donnees = $req->fetch())
{
echo '<p><img src="'.$donnees['chemin'].'"/></p>';
}
if (!$donnees)
{
echo "Il n y a pas de résultats correspondants à votre recherche";
}
$req->closeCursor(); // Termine le traitement de la requête
}
?>
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
$req = $bdd->prepare('SELECT chemin FROM cliches WHERE categorie = ? OR nom = ? OR prix = ?');
$req->execute(array($_POST['photos'], $_POST['photos'], $_POST['photos']));
// On affiche chaque entrée une à une
while ($donnees = $req->fetch())
{
echo '<p><img src="'.$donnees['chemin'].'"/></p>';
}
if (!$donnees)
{
echo "Il n y a pas de résultats correspondants à votre recherche";
}
$req->closeCursor(); // Termine le traitement de la requête
}
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Il me marque ça :
Parse error: parse error in C:\wamp\www\album_photos\rechercher.php on line 17
???
Parse error: parse error in C:\wamp\www\album_photos\rechercher.php on line 17
???
Remplace ça
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
par ça
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
par ça
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}