If & résultat requête
Résolu/Fermé
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
-
Modifié par maxireussite le 8/04/2015 à 03:14
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 - 2 mai 2015 à 05:49
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 - 2 mai 2015 à 05:49
A voir également:
- If & résultat requête
- Lexer resultat - Télécharger - Sport
- Resultat foot - Télécharger - Vie quotidienne
- Resultat loto 5/90 - Forum Linux / Unix
- If exist ✓ - Forum Autoit / batch
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
7 réponses
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 718
8 avril 2015 à 08:10
8 avril 2015 à 08:10
Bonjour
si ta requête ne retourne rien. ..tu n'entre pas dans le while.... donc ton if ne sert à rien à cet endroit.
si ta requête ne retourne rien. ..tu n'entre pas dans le while.... donc ton if ne sert à rien à cet endroit.
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
9 avril 2015 à 00:55
9 avril 2015 à 00:55
Mon problème demeure entier !
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
9 avril 2015 à 09:31
9 avril 2015 à 09:31
Comme indiqué tu dois faire ton if avant ton while :
//affichage des données: if (!$result) { echo '<font color="red">Aucun résultat trouvé.</font>'; } else { while($result = mysql_fetch_array($requete)) { echo $result['region']; } }
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
>
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
10 avril 2015 à 01:48
10 avril 2015 à 01:48
Bon ! Toujours pas de résultat quand la requete est vide...
J'ai tenté d'adapter ton conseil. Je te mets le script au complet, merci de voir ce qui cloche.
Cdlt.
J'ai tenté d'adapter ton conseil. Je te mets le script au complet, merci de voir ce qui cloche.
Cdlt.
<?php if(isset($_POST['region_id'])) $region_id=$_POST['region_id']; else $region_id=""; if(isset($_POST['categorie_id'])) $categorie_id=$_POST['categorie_id']; else $categorie_id=""; if(isset($_POST['datedebut'])) $datedebut=$_POST['datedebut']; else $datedebut=""; if(isset($_POST['datefin'])) $datefin=$_POST['datefin']; else $datefin=""; $datedebut1 = $datedebut?date('Y-m-d', strtotime($datedebut)):date('Y-m-d'); $datefin1 = $datefin?date('Y-m-d', strtotime($datefin)):date('Y-m-d'); // On vérifie si les champs sont vides if(empty($region_id) OR empty($categorie_id) OR empty($datedebut) OR empty($datefin)) { echo '<font color="red">Tous les champs doivent être rempli.</font>'; echo"<html><br /><BR><a href=\"javascript:window.history.go(-1)\">Retour</a></html>"; } elseif(($region_id == 'vide') AND ($categorie_id == 'vide')) { echo '<font color="red">Les champs Région et Categorie doivent être remplis.</font>'; echo"<html><br /><BR><a href=\"javascript:window.history.go(-1)\">Retour</a></html>"; } else { //requête SQL: $sql = "SELECT * FROM pt_trouve LEFT JOIN pt_objets ON pt_objets.objet_id = pt_trouve.objet_id LEFT JOIN pt_regions ON pt_regions.region_id = pt_trouve.region_id WHERE date_trouve between '$datedebut1' and '$datefin1' AND pt_trouve.region_id = '$region_id' AND pt_trouve.categorie_id = '$categorie_id'"; //exécution de la requête: $requete = mysql_query($sql) ; //affichage des données: if (!$requete) { echo '<font color="red">Aucun résultat trouvé.</font>'; } else { while($result = mysql_fetch_array($requete)) { echo "<div align=\"center\">".$result->trouve_id."------".$result->region."------".$result->objet." <a href=\"modification2.php?idPersonne=".$result-> date_trouve."\">modifier --- <a href=\"#\" onClick=\"confirme('".$result->trouve_id."')\" >supprimer</a></div>\n"; } } }
Yuh12
Messages postés
184
Date d'inscription
mercredi 7 mai 2014
Statut
Membre
Dernière intervention
28 septembre 2017
24
Modifié par Yuh12 le 8/04/2015 à 05:57
Modifié par Yuh12 le 8/04/2015 à 05:57
Je pense qu'il serait bien de commencer par un print_r($result) dans le while pour voir ce que contient le réellement résultat.
C'est peut-être
if($result==FALSE) // au lieu de NULL
Sinon je pense que le print_r() ou var_dump() te donneront la solution :)
C'est peut-être
if($result==FALSE) // au lieu de NULL
Sinon je pense que le print_r() ou var_dump() te donneront la solution :)
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
8 avril 2015 à 23:59
8 avril 2015 à 23:59
FALSE non plus ne donne rien.
print_r() ou var_dump() ? Comment les utiliser ?
MErci.
print_r() ou var_dump() ? Comment les utiliser ?
MErci.
ReDLoG
Messages postés
243
Date d'inscription
mardi 12 mars 2013
Statut
Membre
Dernière intervention
28 octobre 2021
57
8 avril 2015 à 11:59
8 avril 2015 à 11:59
Bonjour,
Et se profilera à l'horizon 2 nouveaux problèmes sur cette ligne:
Car il n'y a pas d'echo et d'autre part, faire un mysql_fetch_array() n'a aucun sens (hormis d'obtenir un joli message d'erreur PHP) si on veut afficher des objets comme par exemple $result->trouve_id
Cdlt.
Et se profilera à l'horizon 2 nouveaux problèmes sur cette ligne:
"<div align=\"center\">".$result->trouve_id."------".$result->region."------".$result->objet." <a href=\"modification2.php?idPersonne=".$result-> date_trouve."\">modifier --- <a href=\"#\" onClick=\"confirme('".$result->trouve_id."')\" >supprimer</a></div>\n";
Car il n'y a pas d'echo et d'autre part, faire un mysql_fetch_array() n'a aucun sens (hormis d'obtenir un joli message d'erreur PHP) si on veut afficher des objets comme par exemple $result->trouve_id
Cdlt.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
8 avril 2015 à 12:35
8 avril 2015 à 12:35
Merci à tous pour vos pistes. Je prends le temps de voir tout cela.
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
10 avril 2015 à 16:38
10 avril 2015 à 16:38
Effectivement la condition sur $result est fausse (plus l'habitude de travailler avec l'api mysql) : $result vaut FALSE si la requête a échouée, sinon elle retourne dans tous les cas une variable ressource sur laquelle tu peux utiliser mysql_num_rows() pour récupérer le nombre de résultat, soit :
if (!$result) { echo 'Erreur sql : ' . mysql_error(); } elseif (mysql_num_rows($result) == 0) echo '<font color="red">Aucun résultat trouvé.</font>'; } else { while($result = mysql_fetch_array($requete)) { echo $result['region']; } }
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
Modifié par maxireussite le 11/04/2015 à 02:58
Modifié par maxireussite le 11/04/2015 à 02:58
Une question avant d'essayer :
Dans ta formule avec "if $résult".. Oui mais qu'est-ce qui définit "if $result" auparavant ? ne manquerait-il pas que chose .
Merci de ta réponse.
Dans ta formule avec "if $résult".. Oui mais qu'est-ce qui définit "if $result" auparavant ? ne manquerait-il pas que chose .
Merci de ta réponse.
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
>
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
11 avril 2015 à 03:59
11 avril 2015 à 03:59
Bon cela fonctionne cette fois. Mais j'ai un problème nouveau.
La formule de recherche retourne 1 seul résultat là où il devrait y en avoir deux...
La formule de recherche retourne 1 seul résultat là où il devrait y en avoir deux...
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
11 avril 2015 à 19:05
11 avril 2015 à 19:05
Correction : il s'agit bien de la variable $requete et non $result.
Ton nouveau problème doit venir de la requête sql et/ou des données en bdd. Utilises un client mysql (PhpMyAdmin ou autre) pour tester ta requête directement sur la base.
if (!$requete) { echo 'Erreur sql : ' . mysql_error(); } else { $nb_resultats = mysql_num_rows($requete); if ($nb_resultats == 0) { echo '<font color="red">Aucun résultat trouvé.</font>'; } else { echo '<font color="green">' . $nb_resultats . ' résultats trouvés.</font>'; while($result = mysql_fetch_array($requete)) { var_dump($result); } } }
Ton nouveau problème doit venir de la requête sql et/ou des données en bdd. Utilises un client mysql (PhpMyAdmin ou autre) pour tester ta requête directement sur la base.
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
>
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
12 avril 2015 à 04:44
12 avril 2015 à 04:44
Avant la modif, avec mon script initial la requete retournait bien 2 lignes (ce qui est le résultat correct).
Là il ne retourne qu'une seule...
Là il ne retourne qu'une seule...
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
>
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
Modifié par maxireussite le 12/04/2015 à 05:26
Modifié par maxireussite le 12/04/2015 à 05:26
En fait c soit il me retourne 2 lignes qd il faut, mais à ce moment la là condition "$Requete == Nul" ou "mysql_num_rows($requete) == 0" donne une page blanche
ou bien vice-versa.
Quand (mysql_num_rows($requete) == 0) afiiche aucun résultat trouvé, le sript ne me donne qu'une ligne là ou il devrait y avoir 2.
Ce truc me rend dingue !
dernière version :
ou bien vice-versa.
Quand (mysql_num_rows($requete) == 0) afiiche aucun résultat trouvé, le sript ne me donne qu'une ligne là ou il devrait y avoir 2.
Ce truc me rend dingue !
dernière version :
if (!$requete) { echo 'Erreur sql : ' . mysql_error(); } elseif(mysql_num_rows($requete) == 0) echo '<font color="red">Aucun résultat trouvé.</font>'; else { echo ("<div align=\"center\">".$result->trouve_id."------".$result->region."------".$result->objet." <a href=\"modification2.php?idPersonne=".$result-> date_trouve."\">modifier --- <a href=\"#\" onClick=\"confirme('".$result->trouve_id."')\" >supprimer</a></div>\n" ) ; }
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
2 mai 2015 à 05:49
2 mai 2015 à 05:49
//affichage des données: while($result = mysql_fetch_object($requete)) { echo( "<div align=\"center\">".$result->date_trouve."------".$result->ville."------".$result->objet." <a href=\"modification2.php?trouve_id=".$result-> trouve_id."\">consulter</a></div>\n" ) ; }