Aller au contenu

Requete SQL : enregistrements manquants


nicobillou

Sujets conseillés

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: 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:

Lien vers le commentaire
Partager sur d’autres sites

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 ? ;)

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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é par nicobillou
Lien vers le commentaire
Partager sur d’autres sites

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 :P

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...