Requete dans une table sql [Fermé]

Signaler
Messages postés
325
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 décembre 2017
-
Messages postés
325
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 décembre 2017
-
Bonjour à tous, j'ai fais un onglet pour chercher un élément dans ma base de données. Le problème c'est que j'aimerais afficher "élément non trouvé" quand il n'existe pas dans ma bdd.



J'ai fais ce code (je cherche toutes les infos d'un client en fonction du numero de sa commande) :

<?php
	$w = $_POST['testnumbillet'];
	$reponse = $bdd-> query('SELECT civilite,nom,prenom,adresse,cpostal,ville,email FROM infos WHERE numcommande ="'.$w.'"');
	if($reponse==true){
	while($donnees = $reponse->fetch()){
		echo '<p class="statutbillet">Billet valide</p>';
		echo '<p class="infospersonne">'.$donnees['civilite'].' '.$donnees['nom'].' '.$donnees['prenom'].'</p>';
		echo '<br>';echo '<br>';echo '<br>';
		echo '<p class ="infospersonne">'.$donnees['adresse'].' '.$donnees['cpostal'].' '.$donnees['ville'].'</p>';
		echo '<br>';echo '<br>';echo '<br>';
		echo '<p class="infospersonne">'.$donnees['email'].'</p>';
	}
	$reponse->closeCursor();
	}
	
	
	else{
		echo '<p class="statutbillet2">Billet inconnu !</p>';
	}
?>



Sauf que même si le numéro (et donc le client) n'existe pas, il ne passe jamais au else, il n'affiche tout simplement rien. Je suppose que cela vient du fait que le $reponse passe à true peu importe si la requête est fructueuse ou non, mais du coup je ne vois pas comment faire pour lui dire que si il ne trouve rien, il doit passer au else.

Voilà, merci d'avance! :)

1 réponse

Messages postés
2427
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
27 juillet 2021
453
Salut,

Une solution possible est d'effectuer une première requête sql de type SELECT COUNT afin de récupérer le nombre de résultat.
Tu peux trouver un exemple expliquant cette solution ici : https://www.php.net/manual/fr/pdostatement.rowcount.php#example-1064

Bonne journée,
Messages postés
325
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 décembre 2017
80
Merci j'ai réussi avec un SELECT COUNT!