DCO Posté 26 Février 2008 Partager Posté 26 Février 2008 Bonjour, J'ai un ensemble de formulaires en php et mysql et dont l'un est un moteur de recherche. Lors de la recherche j'aimerai que cela m'affiche le nombre de résultat que la recherche à trouver. Pouvez vous m'aider? voici le code de ma page de recherche: CODE <?php/* *********************** A T T E N T I O N *************************/ /* Veillez à indiquer le bon chemin vers votre fichier connexion.php */ require("../include/connexionDB.php"); /* Connexion au serveur MySQL */ $connection=mysql_connect ($serveur, $username, $password, $table); if (!$connection) { die("Impossible de se connecter au serveur : " . mysql_error()); } /* Sélection de la base de données */ $db_selected = mysql_select_db($database, $connection); if (!$db_selected) { die ("Impossible d'utiliser la base de données : " . mysql_error()); } ?> <html> <head> <title>Rechercher</title> <link href="css/style2.css" rel="stylesheet" type="text/css"> </head> <body> <?php $query="select * from $table"; $result=mysql_query($query); $totenreg=mysql_num_rows($result); if ($totenreg==0) echo "<td colspan=9 align=center bgcolor='#000000'><h2>IL N'Y A PAS D'ENREGISTREMENT A RECHERCHER</td>"; else if (!(empty($_POST["recherche"]))) { echo "<table width=100% border=1 align=center>"; echo "<tr bgcolor='#FFFF00'>"; echo "<td colspan=9><h2>XXXX Résultat de la Recherche</td>"; echo "</tr>"; echo "<tr align=center bgcolor=#87CEEB>"; echo "<td><h4 class='h41'>Numéro</td>"; echo "<td><h4 class='h41'>Latitude</td>"; echo "<td><h4 class='h41'>Longitude</td>"; echo "<td><h4 class='h41'>Type</td>"; echo "<td><h4 class='h41'>Nom</td>"; echo "<td><h4 class='h41'>Adresse</td>"; echo "<td><h4 class='h41'>Code Postal</td>"; echo "<td><h4 class='h41'>Ville</td>"; echo "</tr>"; $i=0; while ($row=mysql_fetch_array($result)) { if (stristr($row[$_POST["choix"]], $_POST["recherche"])) { if ($i==0) { echo "<tr bgcolor=#D3D3D3>"; $i++; } else { echo "<tr bgcolor=#FFFFFF>"; $i--; } echo "<td><h5>".$row["id"]."</td>"; echo "<td><h5>".$row["latitude"]."</td>"; echo "<td><h5>".$row["longitude"]."</td>"; echo "<td><h5>".$row["type"]."</td>"; echo "<td><h5>".$row["nom"]."</td>"; echo "<td><h5>".$row["adresse"]."</td>"; echo "<td><h5>".$row["codepostal"]."</td>"; echo "<td><h5>".$row["ville"]."</td>"; echo "</tr>"; } } echo "</table>"; } else echo "<h4>Veuillez remplir le champ recherche !"; ?> </body> </html> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 26 Février 2008 Partager Posté 26 Février 2008 Bonjour, Après ceci : $query="select * from $table";$result=mysql_query($query); Ajoute : $nb_resultat = mysql_num_rows($result); Puis dans ton code, <?=$nb_resultat?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
DCO Posté 26 Février 2008 Auteur Partager Posté 26 Février 2008 Bonjour et merci pour cette réponse rapide, J'ai fait comme indiqué j'ai rajouté $nb_resultat = mysql_num_rows($result); qui me semble est identique à $totenreg=mysql_num_rows($result); a l'endroit indiqué et ensuite ceci <?=$nb_resultat?> à la place des XXX à cet endroit echo "<td colspan=9><h2>XXXX Résultat de la Recherche</td>"; Mais cela ne donne rien. Merci pour votre aide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 26 Février 2008 Partager Posté 26 Février 2008 Erf, oui, j'avais pas vu ton $totenreg Juste après le $totenreg=mysql_num_rows($result);, ajoute un "echo $totenreg;" Juste après.... la ligne en dessous quoi pour voir ce qu'il retourne Lien vers le commentaire Partager sur d’autres sites More sharing options...
DCO Posté 26 Février 2008 Auteur Partager Posté 26 Février 2008 cela me sort le nombre d'enregistrement qu'il y a dans la table Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sanguo Posté 26 Février 2008 Partager Posté 26 Février 2008 $row=mysql_fetch_row($result);$totenreg = $row[0]; Lien vers le commentaire Partager sur d’autres sites More sharing options...
DCO Posté 26 Février 2008 Auteur Partager Posté 26 Février 2008 C'est toujours le même résultat, c'est le nombre d'enregistrement dans la base qui ressort et non le résultat de la recherche. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 26 Février 2008 Partager Posté 26 Février 2008 C'est donc au niveau de la requète que ca ne marche pas. Ca affiche le nb d'enregistrement trouvé pour la requète donnée. Affiches la requète, pour voir ce qu'elle contient avant de l'envoyer à mysql_fetch_row. Nico. Lien vers le commentaire Partager sur d’autres sites More sharing options...
DCO Posté 26 Février 2008 Auteur Partager Posté 26 Février 2008 c'est à dire? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 26 Février 2008 Partager Posté 26 Février 2008 Bonjour, Je n'avais pas regardé ton code.... Mais je ne le comprends pas. Tu fais un formulaire de recherche, ok, et ensuite tu veux afficher quoi ? Parce que là, ce que tu veux afficher d'après ton code, c'est TOUS les enregistrements de la base : $query="select * from $table"; Là, effectivement, tu auras tous les enregistrements. Inutile de chercher à compter les enregistrements concernés par la recherche, puisque tu ne cherches pas vis à vis de la base. Par contre, visiblement, tu mets en surbrillance les champs concernés par la recherche : echo "<tr bgcolor=#D3D3D3>"; $i++; Si ca marche, alors rajoutes un compteur : $cpt++; que tu affiches plus bas : echo $cpt; Et là, tu auras le nombre d'enregistrements concernés par la recherche. Mais à partir du formulaire et non à partir de la table. Nicolas. Lien vers le commentaire Partager sur d’autres sites More sharing options...
DCO Posté 27 Février 2008 Auteur Partager Posté 27 Février 2008 Merci, Ca fonctionne et ça me retourne bien le nombre d'enregistrements trouvés. Je ne voudrai pas abuser mais comment faire pour rechercher à partir d'une liste déroulante voici mon fichier: <html><head><title>Rechercher</title><link href="/enreg_form/css/style2.css" rel="stylesheet" type="text/css"></head><body> <form action='/enreg_form/scripts/recherche.php' target="rechbas" method='post' name="rechercher" enctype="multipart/form-data"> <table width=50% align=center> <tr> <td align=rigth><input class='text' type="text" name="recherche" size=50 maxlength=50></td> <td align=left><input class="bouton" type="submit" name="Rechercher" value="Rechercher"></td> </tr> </table> <table width=60% align=center> <tr> <td><input type="radio" name="choix" value="id">Numéro</td> <td><input type="radio" name="choix" value="civilite" checked>Mr, Mme; Mlle</td> <td><input type="radio" name="choix" value="nom" checked>Nom</td> <td><input type="radio" name="choix" value="codepostal">C.P.</td> <td><input type="radio" name="choix" value="ville">Ville</td> <td><input type="radio" name="choix" value="type">Statut</td> <td><input type="radio" name="choix" value="date">Date</td> </tr> </table> </form></body></html> Et je voudrai, par exemple à la place du bouton radio Date, pouvoir sélectionner une date dans une liste déroulante. J'ai fait cela mais ça ne fonctionne pas: <select name="choix" value="date"> <option selected value='".$row["date"]."'>".$row["date"].""; if ($row["date"]=="") { <option value='07 et 21 juin 2008'>07 et 21 juin 200 <option value='30 août 2008'>30 août 2008 } </select> Et merci encore pour votre aide et votre patience. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sanguo Posté 27 Février 2008 Partager Posté 27 Février 2008 (modifié) On ne peut pas mélanger PHP et HTML comme tu le fais. $row est une variable PHP. Si tu veux l'utiliser dans une page HTML, tu dois entourer ton code de balise PHP du type <?php $row ?>. De plus si tu veux afficher le contenu de la variable PHP dans du HTML pour l'utiliser tu dois la donner. En clair on aura un truc du genre : <option selected value='<?php echo $row["date"] etc ... ?> Modifié 27 Février 2008 par Sanguo Lien vers le commentaire Partager sur d’autres sites More sharing options...
DCO Posté 27 Février 2008 Auteur Partager Posté 27 Février 2008 bon j'ai essayé avec ça mais ça ne fonctionne pas: <option selected value='<?php".$row["date"]."'>".$row["date"].""; if ($row["date"]=="") { <option value='07 et 21 juin 2008'>07 et 21 juin 200 <option value='30 août 2008'>30 août 2008 }?> Quel serai le code exact? Merci d'avance. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sanguo Posté 28 Février 2008 Partager Posté 28 Février 2008 Ici, un exemple de liste déroulante avec utilisation de PHP (voir l'exercice en bas de page) : http://www.siteduzero.com/tuto-3-180-1-php...ormulaires.html Lien vers le commentaire Partager sur d’autres sites More sharing options...
DCO Posté 28 Février 2008 Auteur Partager Posté 28 Février 2008 Bonjour et merci pour cette réponse, Et effectivement j'ai déjà fait comme le tuto du site du zero et maintenant j'ai dans mon formulaire de recherche 3 liste déroulantes qui s'affichent comme il faut. Et encore merci pour toute l'aide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant