nicobillou Posté 20 Avril 2007 Posté 20 Avril 2007 Bonjour à tous, J'ai un petit problème en ce qui concerne une requete SQL Je souhaite afficher des enregistrement quand leurs id = 5 donc en sql sa donne sa : SELECT * FROM gestnews where id= $id order by id desc Donc jusque la pas de pb, mais j'ai supprimer quelques enregistrements dans ma table et maintenant le résultat de la requête est un peu à l'arrache ... Du genre il affiche un enregistrement alors qu'il y a 2 enregistrements dans la table gestnews A votre avis est ce que ce problème viendrait de ma base ou de ma requête ?? si quelqun peut m'éclairer je lui en remercie d'avance
Dan Posté 20 Avril 2007 Posté 20 Avril 2007 Si on considère que tous tes enregistrements ont le même id, la fin de ta requête est inutile (order by id DESC), non ?
nicobillou Posté 20 Avril 2007 Auteur Posté 20 Avril 2007 Oui tu as raison ! mais justement j'avais tester sa pour essayer de contourner le petit caprice de ma BDD en vain ... avec ou sans sa marche aussi mal
Dan Posté 20 Avril 2007 Posté 20 Avril 2007 Ton champ id est bien un champ de type integer ? Parce que si c'est char ou varchar il faut mettre des quotes autour de ta variable. Essaie avec SELECT * FROM gestnews where id = '5' juste pour voir.
nicobillou Posté 20 Avril 2007 Auteur Posté 20 Avril 2007 Oui c'est bien un INT mais non auto incrémenté ... les quotes ne change rien (pour info id n'est pas clé primaire)
Dan Posté 20 Avril 2007 Posté 20 Avril 2007 Tu as essayé ce que je t'ai suggéré ? Par exemple en le collant dans phpMyAdmin ?
nicobillou Posté 20 Avril 2007 Auteur Posté 20 Avril 2007 (modifié) Oui j'ai deja tout essayer, dans PHPmyadmin tout marche parfaitement la requete passe impek ... Peut etre cela vient de mon PHP ; j'utilise la technique fetch_array <? $sql = "SELECT * FROM gestnews where id= $id "; $requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" ); $result = mysql_fetch_array( $requete );if (isset($_GET['supprimer'])){ $sql = connect_sql(); mysql_query('DELETE FROM gestnews WHERE idnews=' . $_GET['supprimer']); mysql_close($sql);} ?>..... blablabla<? while( $result = mysql_fetch_array( $requete ) ){ ?>..... blablabla<? echo($result['titre']); ?><? } ?> Voila un ptit résumé rapide de mon code. Mon pb est apparut lors de suppression d'enregistrement ... Modifié 20 Avril 2007 par nicobillou
Dan Posté 20 Avril 2007 Posté 20 Avril 2007 C'est donc dans ton code... Tu as une première ligne $result = mysql_fetch_array( $requete ); pour laquelle tu ne fais aucun echo... et ensuite tu as ta boucle while. De ce fait tu loupes systématiquement le premier résultat, c'est donc normal qu'il ne t'en affiche qu'un seul lorsque tu en as deux
nicobillou Posté 20 Avril 2007 Auteur Posté 20 Avril 2007 Hum comment je peut procéder alors pour mettre ce fameux echo ? En tout cas je te remercie grandement de ton aide AH oui c'est bon j'ai compris !! Milles mercis à bientôt
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant