JeuWeb - Crée ton jeu par navigateur
[Résolu] Étrange problème entre for et while - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu] Étrange problème entre for et while (/showthread.php?tid=1471)

Pages : 1 2


[Résolu] Étrange problème entre for et while - Valter - 21-03-2008

Bonjour, je suis confronté à un étrange problème entre la boucle for et la boucle while :?:

Tout d'abord, voici la contenance du champ "Pseudo" de ma table "Users" :

- Valter
- a
- e


Et voici le code de ma page auto.php ( test ) :
Code PHP :
<?
mysql_connect
("localhost","***","***");
mysql_select_db("***");

$in_for = mysql_query("SELECT Pseudo FROM Users");
$do_for = mysql_fetch_array($in_for);

for (
$i = 0; $i < count($do_for); $i++) {
echo
$do_for[$i]."<br>";
}

// fin de la boucle for

echo "<hr>";

// début de la boucle while

$in_while = mysql_query("SELECT * FROM Users");

while (
$do_while = mysql_fetch_array($in_while)) {
echo
$do_while['Pseudo']."<br>";
}
?>
http://0tt0k4r.free.fr/auto.php

Comme vous pouvez le voir, ce qu'affiche la boucle for ne correspond aucunement avec la réalité. :heuuu:

Avez vous une réponse à cela, je vous en serez grandement reconnaissant :respect:

Valter,


RE: Étrange problème entre for et while - r0seBa - 21-03-2008

C'est un peu tordu ta façon de faire ton for.
Et vire aussi les mots de passe de ta page Wink

Met <br /> au lieu de <br>

Tu veux faire quoi avec le for?


RE: Étrange problème entre for et while - Valter - 21-03-2008

Pareil qu'avec le while pardi !

Afficher tous les pseudos de la base de données :ninga: et je sais pas pourquoi mais le for me les cite comme :
- Valter
- <espace>

Alors que le while me les met correctement :mauvais:


RE: Étrange problème entre for et while - Sephi-Chan - 21-03-2008

Avant de faire le for, fais :
Code PHP :
<?php 
echo '<pre>', print_r($do_for), '</pre>';

Je pense que ça t'aidera. Wink


Sephi-Chan


RE: Étrange problème entre for et while - Valter - 21-03-2008

Ça ne me met que :

Citation :Array
(
[0] => Valter
[Pseudo] => Valter
)
1

Tandis qu'avec le while ça affiche les infos correctes de l'array :heuuu:


RE: Étrange problème entre for et while - Shakkah - 21-03-2008

Il faut savoir que me mysql_fetch_array ne te retourne qu'une valeur ( Voir la doc ) donc ton "count($do_for)" ne peut etre égale qu'à un.

donc lors de ton premier tour de boucle on aura
echo $do_for[0]."<br>";
qui te donne Valter

puis au deuxième tour on aura
echo $do_for[1]."<br>"; => $do_for[1] ne contenant rien ça te fait une ligne blanche.

pour utiliser ton for j'aurais fait

Code PHP :
<?php 
$in_for
= mysql_query("SELECT Pseudo FROM Users");
$nb_for = mysql_num_rows($in_for); //On compte le nombre de résultats

for ($i = 0; $i < $nb_for; $i++) {
$do_for = mysql_fetch_array($in_for);
echo
$do_for['Pseudo']."<br>";
}

Après il y a peut etre mieux pour la boucle for.


RE: Étrange problème entre for et while - Valter - 21-03-2008

Merci bien ! Je m'empresse de ce pas te rajouter un +1 ! :d

Valter, qui est tellement gentil qu'il n'a même pas vu que tu avais oublié le c de fetch :d


RE: Étrange problème entre for et while - Shakkah - 21-03-2008

Valter a écrit :Valter, qui est tellement gentil qu'il n'a même pas vu que tu avais oublié le c de fetch :d

Oubliez un C ou ça *sifflote*


RE: [RÉSOLU]Étrange problème entre for et while - Sephi-Chan - 21-03-2008

Je t'ai justement fait afficher le tableau pour te montrer qu'il ne contenait qu'une valeur.

Au passage, tu devrais utiliser mysql_fetch_assoc, plutôt que mysql_fetch_array, car comme tu peux le voir, avec array, tu as :
Citation :[0] => Valter
[Pseudo] => Valter

Comme tu peux le voir, c'est redondant et inutile (à moins que tu utilises souvent l'index numéroté plutôt que la clé). :p

La morale de cette histoire, c'est que for pue la daube pour utiliser un jeu de résultat SQL. Smile


Sephi-Chan


RE: [RÉSOLU]Étrange problème entre for et while - Valter - 22-03-2008

En plus c'est plus lent que while je crois:d... ou c'est l'inverse:heuuu: