Probleme mysql ou php

gaucyril Messages postés 11 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 23 juillet 2012 - 8 avril 2009 à 10:15
gaucyril Messages postés 11 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 23 juillet 2012 - 8 avril 2009 à 10:39
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

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
8 avril 2009 à 10:35
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.
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
8 avril 2009 à 10:36
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 ;)
0
gaucyril Messages postés 11 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 23 juillet 2012
8 avril 2009 à 10:39
Merci, je n'avais pas vu ce doublon. Sans aucun doute un problème d'inattention et de copier coller.
Merci à vous
0
Rejoignez-nous