Requete dans une table sql

Fermé
bat2408 Messages postés 329 Date d'inscription samedi 21 janvier 2012 Statut Membre Dernière intervention 16 décembre 2017 - 3 mai 2016 à 21:08
bat2408 Messages postés 329 Date d'inscription samedi 21 janvier 2012 Statut Membre Dernière intervention 16 décembre 2017 - 4 mai 2016 à 20:47
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

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
4 mai 2016 à 14:50
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,
0
bat2408 Messages postés 329 Date d'inscription samedi 21 janvier 2012 Statut Membre Dernière intervention 16 décembre 2017 88
4 mai 2016 à 20:47
Merci j'ai réussi avec un SELECT COUNT!
0