Mais... est-ce que vous savez seulement ce que vous faites quand vous tapez "while ($ligne = mysql_fetch_array($resultat))" ?
J'ai vraiment peur que non, car déjà jean-baptiste confond, mais là ça a l'air d'être à nouveau confus pour quelqu'un d'autre...
Voici les informations que vous DEVEZ savoir pour comprendre la signification du bout de code que vous utilisez tous les jours :
Donc quand on exécuteC'est exactement équivalent à
Vous comprenez bien qu'un foreach n'a RIEN à faire là dedans, on ne parcourt pas un tableau mais les lignes d'un résultat de requêtes, qui ne sont accessibles que l'une après l'autre via les fonction mysql_fetch_*().
C'est absolument le même fonctionnement que quand on parcourt avec fgets() les lignes d'un fichier.
J'espère avoir un peu éclairci les choses :/
J'ai vraiment peur que non, car déjà jean-baptiste confond, mais là ça a l'air d'être à nouveau confus pour quelqu'un d'autre...
Voici les informations que vous DEVEZ savoir pour comprendre la signification du bout de code que vous utilisez tous les jours :
- mysql_fetch_array($resultat) est un appel de fonction, qui renvoie FALSE s'il n'y a plus de ligne dans le résultat de la requête. Et sinon elle renvoie un tableau (au passage, utilisez mysql_fetch_assoc() qui renvoie un tableau associatif, c'est beaucoup plus pratique).
- Un tableau non vide, converti en booléen, c'est TRUE.
- Une affectation ($a = $b) a pour valeur la valeur affectée (($a = $b) == $b est TRUE).
Donc quand on exécute
Code :
while ($ligne = mysql_fetch_assoc($res)) {
...
}
Code :
$ligne = mysql_fetch_assoc($res);
while ($ligne != FALSE) {
...
$ligne = mysql_fetch_assoc($res);
}
Vous comprenez bien qu'un foreach n'a RIEN à faire là dedans, on ne parcourt pas un tableau mais les lignes d'un résultat de requêtes, qui ne sont accessibles que l'une après l'autre via les fonction mysql_fetch_*().
C'est absolument le même fonctionnement que quand on parcourt avec fgets() les lignes d'un fichier.
J'espère avoir un peu éclairci les choses :/
Ressources [PHP][MySQL][prototype.js]