yeahledieu Posté(e) le 27 mars 2006 Partager Posté(e) le 27 mars 2006 Bonjour @ Tous, J'ai un problème pour mon TD en PhP. J'ai une base de donnée Voiture contenant 4 tables. L'une d'elle est "Carrosserie". J'arrive à rentrer des données et à les visualiser dans un tableau récapitulatif. http://blinkoff.free.fr/bdd Je souhaite maintenant faire un 'filtre' sur cette table où le client pourra choisir par exemple sa couleur. http://blinkoff.free.fr/bdd/filtrage/test2.php Le problème est: Quand je valide une couleur, je n'obtiens pas de résultat (feuille blanche). Mais je ne sais pas d'où vient l'erreur. Voici le code de ma page de sélection (que la partie qui intéresse, j'ai enlevé les ID de connexion) <html> //Choix couleur <form method="post" action="filtre.php"> <select> <? echo "Choisissez la couleur"; $SQL = "SELECT DISTINCT(couleur) FROM carrosserie ORDER BY couleur"; $res = mysql_query($SQL); while($couleur=mysql_fetch_array($res)) { echo '<option>'.$couleur['couleur'].'</option>'; } ?> </select> <input type="submit" name="Submit" value="Ok" /> </form> </html> Et maintenant le fichier filtre.php <html> <? if (isset($couleur)) { $filtre = "SELECT * FROM carrosserie WHERE couleur = ' . $couleur . '"; $result = mysql_query($filtre) or die ('erreur dans la requete : $filtre. ' . mysql_error()); if (mysql_num_rows($result) > 0) { // affiche tableau html echo '<table width=100% cellpadding=10 cellspacing=0 border=1>'; echo '<tr><td><b>Moteurs en stock</b></td><td><b>N° ID</b></td><td><b>Motorisation</b></td><td><b>Carburant</b></td><td><b>Puissance en chevaux</b></td></tr>'; //parcourt du jeu d'enregistrements //affiche chaque champs while($row = mysql_fetch_row($result)) { echo '<tr>'; echo '<td>'; echo '<td>' . $row[0] . '</td>'; echo '<td>' . $row[1] . '</td>'; echo '<td>' . $row[2] . '</td>'; echo '<td>' . $row[3] . '</td>'; } echo '</table>'; } else { //affiche mess d'erreur echo 'Aucun enregistrement trouvé'; } } mysql_close(); ?> </html> Je pense que l'erreur vient de filtre.php, et que ce n'est pas une erreur de prog, mais juste de logique (mauvais utilisation des variables) Merci de votre aide! Lien vers le commentaire Partager sur d’autres sites More sharing options...
savory Posté(e) le 27 mars 2006 Partager Posté(e) le 27 mars 2006 utilise $_POST['couleur'] Lien vers le commentaire Partager sur d’autres sites More sharing options...
yeahledieu Posté(e) le 27 mars 2006 Auteur Partager Posté(e) le 27 mars 2006 utilise $_POST['couleur'] c'est à dire? Dans action= ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 27 mars 2006 Partager Posté(e) le 27 mars 2006 Apparemment tu programmes avec la directive "register_globals" activée, ce qui est non seulement obsolète depuis PHP4 mais surtout très dangereux. Quand tu veux récupérer les valeurs d'un formulaire, utilise les tables $_GET et $_POST à la place. Consulte la doc PHP à ce sujet. Lien vers le commentaire Partager sur d’autres sites More sharing options...
yeahledieu Posté(e) le 27 mars 2006 Auteur Partager Posté(e) le 27 mars 2006 ok merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
yeahledieu Posté(e) le 28 mars 2006 Auteur Partager Posté(e) le 28 mars 2006 Problème résolu, pour info, voici l'erreur: <html> //Choix couleur <form method="post" action="filtre.php"> <select name="couleur"> <? echo "Choisissez la couleur"; $SQL = "SELECT DISTINCT(couleur) FROM carrosserie ORDER BY couleur"; $res = mysql_query($SQL); while($couleur=mysql_fetch_array($res)) { echo '<option>'.$couleur['couleur'].'</option>'; } ?> </select> <input type="submit" name="Submit" value="Ok" /> </form> </html> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 28 mars 2006 Partager Posté(e) le 28 mars 2006 Tu devrais quand même régler "register_globals = off", sinon tu peux être sûr que le code qui marche chez toi ne fonctionnera pas chez les hébergeurs. Et puis il n'est jamais trop tard pour apprendre à programmer propremement :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.