Remettre à zéro la liste des résultats MySQL - SQL/NoSQL - Programmation
Marsh Posté le 06-07-2010 à 14:33:50
ben du fait un do while au lien d'un while
Marsh Posté le 06-07-2010 à 14:41:02
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); !
Marsh Posté le 06-07-2010 à 14:56:41
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
Marsh Posté le 06-07-2010 à 15:09:04
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.
Marsh Posté le 06-07-2010 à 16:51:36
ok, alors do while:
à la place de
Code :
|
tu fais
Code :
|
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.
Marsh Posté le 06-07-2010 à 17:27:13
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
Marsh Posté le 07-07-2010 à 00:27:20
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
Marsh Posté le 07-07-2010 à 14:25:13
vanquishV12 a écrit : Mais ça me sert à quoi par rapport à ma solution ? |
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é.
Marsh Posté le 07-07-2010 à 17:27:16
essaie :
Code :
|
Avant ta boucle
Marsh Posté le 30-07-2010 à 19:37:58
Aucunement besoin d'un DO WHILE ici.
//Extraction des données |
Marsh Posté le 30-07-2010 à 21:32:53
vanquishV12 a écrit : Bonjour, |
Le "or die('Erreur SQL !')", c'est sur le mysql_query() qu'il faut le faire, pas sur un fetch_array
Si ta requête est mauvaise, l'erreur remontera à son exécution, pas quand tu essayes d'accéder à un champ.
Marsh Posté le 06-07-2010 à 14:29:28
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