Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3043 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Remettre à zéro la liste des résultats MySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Remettre à zéro la liste des résultats MySQL

n°2007406
vanquishV1​2
se coucher tard nuit
Posté le 06-07-2010 à 14:29:28  profilanswer
 

Bonjour,
 
Dans un script PHP, je fais une requête.
 
//Extraction des données
$result = mysql_query("SELECT blabla" );
$row = mysql_fetch_array($result) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
 
while($row = mysql_fetch_array($result)){
echo $row['id'];
}
 
Et bien comme $row a déjà été initialisé, le résultat est que le script m'affiche les résultats à compter du second et non du premier.
Comment réinitialiser le compteur/pointeur ?
 
Merci

mood
Publicité
Posté le 06-07-2010 à 14:29:28  profilanswer
 

n°2007407
rufo
Pas me confondre avec Lycos!
Posté le 06-07-2010 à 14:33:50  profilanswer
 

ben du fait un do while au lien d'un while ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2007408
vanquishV1​2
se coucher tard nuit
Posté le 06-07-2010 à 14:41:02  profilanswer
 

Un do while ?

 

Je pense qu'il y a une fonction toute bête similaire à reset();

 

Mais là, reset($row) ne fonctionne pas.

 


EDIT ; AAHHH j'ai retrouvé, yébon mysql_data_seek($result,0); !


Message édité par vanquishV12 le 06-07-2010 à 14:44:05
n°2007414
jeff@be
Posté le 06-07-2010 à 14:56:41  profilanswer
 

je n'oserais te demander l'intéret de cette ligne:
 
$row = mysql_fetch_array($result) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
 
mais le do while de rufo me parait plus que judicieux

n°2007426
vanquishV1​2
se coucher tard nuit
Posté le 06-07-2010 à 15:09:04  profilanswer
 

En fait, je fais une seule requête pour afficher deux choses.
D'un côté j'ai juste besoin de récupérer deux données de n'importe quelle ligne, de l'autre (avec le while) je génère une liste avec tous les résultats.

n°2007475
jeff@be
Posté le 06-07-2010 à 16:51:36  profilanswer
 

ok, alors do while:
 
à la place de

Code :
  1. while($row = mysql_fetch_array($result)){
  2.     echo $row['id'];
  3. }


tu fais

Code :
  1. do {
  2.     echo $row['id'];
  3. }
  4. while($row = mysql_fetch_array($result));


 
De cette manière, le premier "echo $row['id'];" t'affichera le contenu de la première ligne de $result et tu n'as pas besoin de réinitialiser $result.
 

n°2007492
vanquishV1​2
se coucher tard nuit
Posté le 06-07-2010 à 17:27:13  profilanswer
 

Mais ça me sert à quoi par rapport à ma solution ?
 
Je ne comprends pas le do while, qu'est ce que ça fait exactement (en langage humain) ?
 
Merci

n°2007621
Pascal le ​nain
Posté le 07-07-2010 à 00:27:20  profilanswer
 

L'usage normal est de tester la présence d'enregistrement via mysql_num_rows(), qui renvoie le nombre d'enregistrements, puis, s'il y en a, de les afficher avec un while($rows=mysql_fetch_assoc($result)){blabla;}
 
Ainsi, plus de problèmes, et on utilise les fonctions qui ont été concues pour  ;)


Message édité par Pascal le nain le 07-07-2010 à 00:27:31
n°2007737
rufo
Pas me confondre avec Lycos!
Posté le 07-07-2010 à 14:25:13  profilanswer
 

vanquishV12 a écrit :

Mais ça me sert à quoi par rapport à ma solution ?
 
Je ne comprends pas le do while, qu'est ce que ça fait exactement (en langage humain) ?
 
Merci


 
do while exécute une fois la boucle au min vue que la condition est à la fin de la boucle, au contraire du while. Dans ton cas, le 1er enregistrement sera donc bien affiché.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2007828
Nico5779
Posté le 07-07-2010 à 17:27:16  profilanswer
 

essaie :

Code :
  1. mysql_data_seek( $result, 0 );


 
Avant ta boucle


---------------
Créer votre blog gratuitement
mood
Publicité
Posté le 07-07-2010 à 17:27:16  profilanswer
 

n°2013289
shaoling
Posté le 30-07-2010 à 19:37:58  profilanswer
 

Aucunement besoin d'un DO WHILE ici.

//Extraction des données  
$result = mysql_query("SELECT blabla" );  
 
while($row = mysql_fetch_array($result)){  
echo $row['id'];  
}



---------------
>> Culture-Info : La culture informatique pour tous (projet scolaire) <<
n°2013300
mrbebert
Posté le 30-07-2010 à 21:32:53  profilanswer
 

vanquishV12 a écrit :

Bonjour,
 
Dans un script PHP, je fais une requête.
 
//Extraction des données
$result = mysql_query("SELECT blabla" );
$row = mysql_fetch_array($result) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
 
while($row = mysql_fetch_array($result)){
echo $row['id'];
}
 
Et bien comme $row a déjà été initialisé, le résultat est que le script m'affiche les résultats à compter du second et non du premier.
Comment réinitialiser le compteur/pointeur ?
 
Merci

Le "or die('Erreur SQL !')", c'est sur le mysql_query() qu'il faut le faire, pas sur un fetch_array :o  
Si ta requête est mauvaise, l'erreur remontera à son exécution, pas quand tu essayes d'accéder à un champ.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Remettre à zéro la liste des résultats MySQL

 

Sujets relatifs
[MySQL]Group Concat & Like[AS2] remise a zéro de l'animation
[résolu ou tout comme ;)]config easy php pour pdo mysqlliste dynamique php associé a une base de données mysql [RESOLU]
[VB/Excel]Comparer liste excel avec liste de fichiersFaire de statistique sur une BD MYSQL en PHP
problème affichage données mysql/phpproblème de zero binaire dans un enregistrement
vba stockage de résultats dans un fichier csv 
Plus de sujets relatifs à : Remettre à zéro la liste des résultats MySQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR