Aller au contenu

Requete SQL : enregistrements manquants


Sujets conseillés

Posté

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:

Posté

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

Posté

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

Posté

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.

Posté

Tu as essayé ce que je t'ai suggéré ? Par exemple en le collant dans phpMyAdmin ?

Posté (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é par nicobillou
Posté

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

Posté

Hum comment je peut procéder alors pour mettre ce fameux echo ? :blush: En tout cas je te remercie grandement de ton aide :)

AH oui c'est bon j'ai compris !! Milles mercis à bientôt :):):):)

Veuillez vous connecter pour commenter

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



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