Probleme mysql ou php

Signaler
Messages postés
11
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
23 juillet 2012
-
Messages postés
11
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
23 juillet 2012
-
Bonjour à tous,

J'ai donc un petit problème. J'ai le code suivant :

$sql = 'SELECT * FROM query WHERE valid="1"';
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
echo '
';
echo '';
echo '----
';
echo 'de, ';
echo 'message, ';
echo 'date, ';
echo ', ';

while ($data = mysql_fetch_array($req)){
sscanf($data['date'], \"%4s-%2s-%2s\", $an, $mois, $jour);
echo '----
';
echo ''.$data['mail'].', ';
echo ''.$data['message'].', ';
echo ''.$jour.'/'.$mois.'/'.$an.', ';
echo ', ';
     
      $sql1 = 'SELECT * FROM requery WHERE login=\"'.$_SESSION['login'].'\" AND idquery=\"'.$data['id'].'\"';
      $req1 = mysql_query($sql1) or die('Erreur SQL !
'.$sql1.'
'.mysql_error());
      $data1 = mysql_fetch_array($req1);
      while ($data1 = mysql_fetch_array($req1)){
      sscanf($data1['date'], \"%4s-%2s-%2s\", $an1, $mois1, $jour1);
     
      echo '----
';
      echo ', ';
      echo ''.$data1['message'].', ';
      echo ''.$jour1.'/'.$mois1.'/'.$an1.', ';
      echo ', ';
     
      echo '';
      }
echo '';
}
echo '
';
echo '
';
mysql_close();
exit();

Lors de ma requête sql1 il ne m'affiche pas la première entrée correspondante dans la base, mais seulement les suivantes.
Quelqu'un aurait-il une solution ?

Merci d'avance.

3 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
salut

dans le code :

$data1 = mysql_fetch_array($req1);
while ($data1 = mysql_fetch_array($req1)){


ta premiere ligne sert a quoi ? (a part a sauter la premiere ligne de resultat...)
bref, remplace par :

while ($data1 = mysql_fetch_array($req1)){

et tout ira bien.
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

C'est tout a fait normal que tu ne vois jamais le premier résultat, tu fait un mysql_fetch_array() de trop :
      $data1 = mysql_fetch_array($req1);
      while ($data1 = mysql_fetch_array($req1)){
Vire donc le premier qui ne sert a rien et garde seulement ta boucle ;)
Messages postés
11
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
23 juillet 2012

Merci, je n'avais pas vu ce doublon. Sans aucun doute un problème d'inattention et de copier coller.
Merci à vous