Version complète: sur le forum Webmaster Hub : Requete SQL : enregistrements manquants
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
nicobillou
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 ... mad2.gif 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 hypocrite.gif
Dan
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 ? wink.gif
nicobillou
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 sad.gif
Dan
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
CODE
SELECT * FROM gestnews where id = '5'

juste pour voir.
nicobillou
Oui c'est bien un INT mais non auto incrémenté ... les quotes ne change rien sad.gif (pour info id n'est pas clé primaire)
Dan
Tu as essayé ce que je t'ai suggéré ? Par exemple en le collant dans phpMyAdmin ?
nicobillou
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 smile.gif

CODE
<? $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 ...
Dan
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 tongue.gif
nicobillou
Hum comment je peut procéder alors pour mettre ce fameux echo ? blush.gif En tout cas je te remercie grandement de ton aide smile.gif

AH oui c'est bon j'ai compris !! Milles mercis à bientôt smile.gif smile.gif smile.gif smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.