Ma requete n'aboutit pas [Php]
Fermé
txiki
Messages postés
6596
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
22 février 2024
-
18 nov. 2008 à 14:39
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 19 nov. 2008 à 14:52
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 19 nov. 2008 à 14:52
A voir également:
- Ma requete n'aboutit pas [Php]
- Easy php - Télécharger - Divers Web & Internet
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Appel qui n'aboutit pas - Forum Samsung
- Requête sql pix - Forum Python
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
3 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
18 nov. 2008 à 17:44
18 nov. 2008 à 17:44
Salut tixi,
je ne comprend pas trop l'organisation des tes fichiers, les codes que tu donnes sont lesquels
pourquoi passes tu toujours par index.php avec apparemment une redirestion vers les autres pages ?
je t'ai mis des commentaires:
et l'autre page Details
je ne comprend pas trop l'organisation des tes fichiers, les codes que tu donnes sont lesquels
pourquoi passes tu toujours par index.php avec apparemment une redirestion vers les autres pages ?
je t'ai mis des commentaires:
<!-- ========== recherche des prénoms ======== --> <h1 align="center"> Rechercher l'équivalent basque <br /> d'un prénom féminin français </h1> <? require 'fonctions.php'; //n'a pas l'air de fonctionner ??? (il me dit: la table n'existe pas dans txiki) //que fait cette fonction ? //je suppose que cette page fonctions.php contient les definitions de $host,$user,$pass, alors il est mal nommé tu devrais l'appeler configuration.php //si tu as l'erreur la table n'existe pas dans txiki, c'est que le nom de ta table "prenomsfeminins" n'est pas identique à celui de la base mysql //============== // connection à la DB //============== //$link = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base //pourquoi mysql_pconnect mysql_connect suffit ! $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table if(isset($_POST['requete']) && $_POST['requete'] != NULL) // on vérifie d'abord l'existence du post et on vérifie aussi si la requete n'est pas vide. { // on créé une variable $requete pour faciliter l'écriture de la requete sql, // mais aussi pour empêcher ceux qui utiliseraient du Php ou du JS, avec la fonction htmlspecialchars(). //le nom de tes variables est mal choisi $prenom_rech = htmlspecialchars($_POST['prenom_rech']); $query = mysql_query("SELECT * FROM prenomsfeminins WHERE FrenchName LIKE '%$prenom_rech%' ORDER BY id ASC") or die (mysql_error()); $nb_resultats = mysql_num_rows($query); // on compte les résultats pour vérifier par après if($nb_resultats > 0) // si le nombre de résultats est supérieur à 0, on continue (alors mets le test correspondant) > { // maintenant, on va afficher les résultats et la page qui donne les résultats et le nombre de résultats ?> <table width='60%' border="1" align='center' cellpadding="6" cellspacing="0"> <tr><td> <h3> Résultats de la recherche: <em class="vert">(Prénoms féminins) </em></h3> <p class="red"><? echo $nb_resultats; // on affiche le nombre de résultats if($nb_resultats > 1) { echo ' résultats trouvés'; } else { echo ' résultat trouvé'; } // on vérifie le nombre de résultats pour orthographier correctement. ?> </p> <? //j'ai mis $row au lieu de $query (ligne au lieu de requette, car la boucle while lit ligne par ligne le résultat de la requette) while($row = mysql_fetch_array($query)) // on fait un while pour afficher le prénom trouvé, ainsi que l'id qui permettra de faire le lien vers la page de la catégorie { ?> <a href="Detail_Prenom.php?id=<? echo $row['id']; ?>"><? echo $row['Prenom']; ?></a><br/> <!-- page du détail prénom --> <? } // fin de la boucle ?> </td></tr></table> <br/> <p align="center"> <!-- que fait le bouton ci dessous en dehors d'un formulaire ?? de plus si type=Submit, pas besoin de onClick= --> <input type="submit" name="Submit" value="Nouvelle recherche" onClick="document.location.href='index.php?page=Recherche_PrenomsF&lang=Fr'"/></p> <? } // fini d'afficher les résultats ! Maintenant, il faut afficher l'éventuelle erreur en cas d'échec de recherche et le formulaire. else { ?> <table class="prenoms" align="center" cellpadding="6" cellspacing="0"> <tr> <td> <h3>Désolé !</h3> <p align="center" class="red"> Aucun équivalent basque pour <strong class="vert"><? echo $_POST['requete']; ?></strong> n'a été trouvé. </p> <p align="center"><input type="submit" name="Submit" value="Essayez" onClick="document.location.href='index.php?page=Recherche_PrenomsF&lang=Fr'"/> avec un autre prénom </p></td> </tr> </table> <? } // fini d'afficher l'erreur ^^ mysql_close(); // on ferme mysql, on n'en a plus besoin } else { // et voilà le formulaire, en HTML de nouveau ! ?> <p align="center"> Vous allez effectuer une recherche des prénoms basques.<br /> Tapez un <strong>prénom </strong> puis lancez la recherche.<br /> Les résultats s'afficheront sous forme de lien. <br /> En cliquant sur l'un d'eux, vous obtiendrez son équivalent basque et sonorigine détaillée.</p> <p align="center"><strong class="vert"> Bonne recherche ! </strong></p> <table width="50%" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td> <form action="index.php?page=Detail_Prenom&lang=Fr" method="post"> <p align="center"> <input type="text" name="requete" size="40" /> <!-- la tu as une erreur, ton bouton est du type Submit, donc il fera tout seul le submit, pas de besion de rajouter le onClick= -> <!-- <input type="submit" name="Submit" value="OK" onClick="document.location.href='index.php?page=Detail_Prenom&lang=Fr'"/> --> <input type="submit" name="Submit" value="OK" /> </p> </form> </td></tr></table> <? } // et voilà, c'est fini ! ?> <!-- Fin de la boite fra
et l'autre page Details
<!-- ============ recherche des prénoms ====== --> <h1> Equivalent basque </h1> <? // ====================================== // On recupere la variable "id" correspondant au prénom choisi // ====================================== //ce script est appelé par un click sur le liebn n'est ce pas, alors l'id est passé par l'URL donc en GET //$id = $_POST["id"]; // on récupère la requete par la variable $_POST $id = $_GET["id"]; // on récupère la requete par la variable $_GET require 'fonctions.php'; //====================== // connection à la DB //====================== $link = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table //============================================== // requête SQL qui affiche l'équivalent basque correspondant au lien cliqué //============================================== $select = "SELECT * FROM prenomsféminins WHERE id='$id'"; // On selectionne seulement la ligne qui correspond au prénom choisi $result = mysql_query($select) or die ('Erreur : '.mysql_error() ); $row= mysql_fetch_row($result); // mysql_fetch_row génère un tableau correspondant a la ligne selectionnée de la BDD // Les informations sont accessibles par $row["FrenchName"], $row["prenom"], $row[Origine]... // ================================ // Affichage de la fiche dans un tablea&u dynamique // ================================ echo "<table width='65%' bgcolor='#FFFFFF' border='1' cellspacing='0' cellpadding='4' align='center'>\n"; // première ligne on affiche le titre "Equivalent basque" echo "<tr text-align='center' padding='3px'>"; echo "<td bgcolor='#7F9DB9'><h2> Equivalent basque </h2></td>"; echo "</tr>\n"; // lecture et affichage des résultats. echo "<tr bgcolor='#FFA54A' text-align='center'>"; echo "<td width='50%' bgcolor='#F0F0F0'><strong>Prénom français: </strong>" .$row["FrenchName"]."</strong></td>"; // première ligne pour le prénom français echo "<tr>"; echo "<td width='50%' bgcolor='#F0F0F0'><strong>Equivalent basque: </strong>" .$row["Prenom"]."</td>"; // seconde ligne pour son équivalent basque echo "</tr>\n"; echo "<tr>"; echo "<td width='50%' bgcolor='#F0F0F0'><strong>Origine: </strong>" .$row["Origine"]."</td>"; // troisième ligne pour l'origine du prénom basque echo "</tr>\n"; echo "</table>\n"; // fin du tableau. mysql_close(); ?> <p> </p> </body> </html>
txiki
Messages postés
6596
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
22 février 2024
519
18 nov. 2008 à 20:13
18 nov. 2008 à 20:13
Merci Alain_42,
Je regarderai ça minutieusement demain, à tête reposée.
Je regarderai ça minutieusement demain, à tête reposée.
txiki
Messages postés
6596
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
22 février 2024
519
19 nov. 2008 à 13:56
19 nov. 2008 à 13:56
Salut Alain_42,
Mon Organisation ? Elle est celle-ci:
Le header, le menu, la bannière et le footer sont des includes dans l'index.php. Il y a un div nommé frame qui reçoit toutes les pages, html ou php. Toutes ces pages doivent être déclarées dans un fichier Init Session Table.php.
Quant à la table inconnue c'était l'accent de féminin qui ne devait pas y être. C'est corrigé.
Maintenant, il m'affiche les trois zones (prénom français, équivalent basque + origine du prénom basque) mais elles sont vides.
Le bouton Nouvelle recherche est là dans le cas où il y a un affichage, si on veut effectuer une nouvelle recherche.
Mon Pb est que je voulais afficher le/s résultat/s dans cette zone, sous forme de lien pour accéder au détail.
Dans mes prénoms, il peut y avoir plusieurs prénoms français identiques pour les variantes en basque. Si tu clique sur "adela" dans les équivalents basques des prénoms féminins français, (seconde ligne), le résultat est vide. Seul les trois lignes (orange, vert et gris apparaissent).
J'ai l'impression que les variables ne sont pas transmises. Qu'en pense-tu ?
Merci encore de tes éclaircissements !
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Mon Organisation ? Elle est celle-ci:
Le header, le menu, la bannière et le footer sont des includes dans l'index.php. Il y a un div nommé frame qui reçoit toutes les pages, html ou php. Toutes ces pages doivent être déclarées dans un fichier Init Session Table.php.
Quant à la table inconnue c'était l'accent de féminin qui ne devait pas y être. C'est corrigé.
Maintenant, il m'affiche les trois zones (prénom français, équivalent basque + origine du prénom basque) mais elles sont vides.
Le bouton Nouvelle recherche est là dans le cas où il y a un affichage, si on veut effectuer une nouvelle recherche.
Mon Pb est que je voulais afficher le/s résultat/s dans cette zone, sous forme de lien pour accéder au détail.
Dans mes prénoms, il peut y avoir plusieurs prénoms français identiques pour les variantes en basque. Si tu clique sur "adela" dans les équivalents basques des prénoms féminins français, (seconde ligne), le résultat est vide. Seul les trois lignes (orange, vert et gris apparaissent).
J'ai l'impression que les variables ne sont pas transmises. Qu'en pense-tu ?
Merci encore de tes éclaircissements !
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
19 nov. 2008 à 14:52
19 nov. 2008 à 14:52
Salut,
Quant à la table inconnue c'était l'accent de féminin qui ne devait pas y être. C'est corrigé.
dans les noms de table comme dans les noms de variables , de fichier, évites les accents et les espaces
ce ne sont pas des reproches mais des conseils amicaux bien sûr.
qqs modifs:
comme ça ça devrait mieux aller
a la place du bouron nouvelle recherche tu peux mettre un petit lien sous forme d'image par exemple
si tu n'es pas trop pressé je peux voir avec toi pour faire ton affichage de la réponse dans la même page, sans rechargement, en utilisant AJAX, mais c'est un peu plus complexe, il faut que l'on s'envoie les fichiers en pièces jointe d'un mail.
Si tu veux envoie moi un MP
Quant à la table inconnue c'était l'accent de féminin qui ne devait pas y être. C'est corrigé.
dans les noms de table comme dans les noms de variables , de fichier, évites les accents et les espaces
ce ne sont pas des reproches mais des conseils amicaux bien sûr.
qqs modifs:
<!-- ========== recherche des prénoms ======== --> <h1 align="center"> Rechercher l'équivalent basque <br /> d'un prénom féminin français </h1> <? require 'fonctions.php'; //n'a pas l'air de fonctionner ??? (il me dit: la table n'existe pas dans txiki) //que fait cette fonction ? //je suppose que cette page fonctions.php contient les definitions de $host,$user,$pass, alors il est mal nommé tu devrais l'appeler configuration.php //si tu as l'erreur la table n'existe pas dans txiki, c'est que le nom de ta table "prenomsfeminins" n'est pas identique à celui de la base mysql //============== // connection à la DB //============== //$link = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base //pourquoi mysql_pconnect mysql_connect suffit ! $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table //je t'ai mis des echo pour voir ce qu'on reçoit et modifié les noms du bouton Submit et du champ (voir formualire en bas de page if(isset($_POST['recherche']) && $_POST['prenom_rech'] !="") // on vérifie d'abord l'existence du post et on vérifie aussi si la requete n'est pas vide. { // on créé une variable $requete pour faciliter l'écriture de la requete sql, // mais aussi pour empêcher ceux qui utiliseraient du Php ou du JS, avec la fonction htmlspecialchars(). //le nom de tes variables est mal choisi $prenom_rech = htmlspecialchars($_POST['prenom_rech']); //TEST echo "Prenom recherche :".$prenom_rech; $query = mysql_query("SELECT * FROM prenomsfeminins WHERE FrenchName LIKE '%".$prenom_rech."%' ORDER BY id ASC") or die (mysql_error()); $nb_resultats = mysql_num_rows($query); // on compte les résultats pour vérifier par après //TEST echo "Nombre resultats trouves :".$nb_resultats; if($nb_resultats > 0) // si le nombre de résultats est supérieur à 0, on continue (alors mets le test correspondant) > { // maintenant, on va afficher les résultats et la page qui donne les résultats et le nombre de résultats ?> <table width='60%' border="1" align='center' cellpadding="6" cellspacing="0"> <tr><td> <h3> Résultats de la recherche: <em class="vert">(Prénoms féminins) </em></h3> <p class="red"><? echo $nb_resultats; // on affiche le nombre de résultats if($nb_resultats > 1) { echo ' résultats trouvés'; } else { echo ' résultat trouvé'; } // on vérifie le nombre de résultats pour orthographier correctement. ?> </p> <? //j'ai mis $row au lieu de $query (ligne au lieu de requette, car la boucle while lit ligne par ligne le résultat de la requette) while($row = mysql_fetch_array($query)) // on fait un while pour afficher le prénom trouvé, ainsi que l'id qui permettra de faire le lien vers la page de la catégorie { ?> <a href="Detail_Prenom.php?id=<? echo $row['id']; ?>"><? echo $row['Prenom']; ?></a><br/> <!-- page du détail prénom --> <? } // fin de la boucle ?> </td></tr></table> <br/> <p align="center"> <!-- que fait le bouton ci dessous en dehors d'un formulaire ?? de plus si type=Submit, pas besoin de onClick= --> <input type="submit" name="Submit" value="Nouvelle recherche" onClick="document.location.href='index.php?page=Recherche_PrenomsF&lang=Fr'"/></p> <? } // fini d'afficher les résultats ! Maintenant, il faut afficher l'éventuelle erreur en cas d'échec de recherche et le formulaire. else { ?> <table class="prenoms" align="center" cellpadding="6" cellspacing="0"> <tr> <td> <h3>Désolé !</h3> <p align="center" class="red"> Aucun équivalent basque pour <strong class="vert"><? echo $_POST['requete']; ?></strong> n'a été trouvé. </p> <p align="center"><input type="submit" name="Submit" value="Essayez" onClick="document.location.href='index.php?page=Recherche_PrenomsF&lang=Fr'"/> avec un autre prénom </p></td> </tr> </table> <? } // fini d'afficher l'erreur ^^ mysql_close(); // on ferme mysql, on n'en a plus besoin } else { // et voilà le formulaire, en HTML de nouveau ! ?> <p align="center"> Vous allez effectuer une recherche des prénoms basques.<br /> Tapez un <strong>prénom </strong> puis lancez la recherche.<br /> Les résultats s'afficheront sous forme de lien. <br /> En cliquant sur l'un d'eux, vous obtiendrez son équivalent basque et sonorigine détaillée.</p> <p align="center"><strong class="vert"> Bonne recherche ! </strong></p> <table width="50%" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td> <form action="index.php?page=Detail_Prenom&lang=Fr" method="post"> <p align="center"> <input type="text" name="prenom_rech" size="40" /> <!-- la tu as une erreur, ton bouton est du type Submit, donc il fera tout seul le submit, pas de besion de rajouter le onClick= -> <!-- <input type="submit" name="Submit" value="OK" onClick="document.location.href='index.php?page=Detail_Prenom&lang=Fr'"/> --> <input type="submit" name="recherche" value="OK" /> </p> </form> </td></tr></table> <? } // et voilà, c'est fini ! ?> <!-- Fin de la boite fra
comme ça ça devrait mieux aller
a la place du bouron nouvelle recherche tu peux mettre un petit lien sous forme d'image par exemple
si tu n'es pas trop pressé je peux voir avec toi pour faire ton affichage de la réponse dans la même page, sans rechargement, en utilisant AJAX, mais c'est un peu plus complexe, il faut que l'on s'envoie les fichiers en pièces jointe d'un mail.
Si tu veux envoie moi un MP