La structure interne ainsi que le design d'AreaProg ont récemment été modifiés.
Suite à cela, le format de certains articles a été perturbé. Le problème est connu et en cours de résolution. Merci de votre compréhension.
$tableau mysql_fetch_array($result, $result_type)Le premier argument de cette fonction est la ressource renvoyée par mysql_query tandis que le deuxième paramètre désigne de quel type sera le tableau renvoyé. Comme nous l'avons vu précédemment, voici les trois types de tableaux possibles : MYSQL_ASSOC : tableau associatif MYSQL_NUM : tableau numérique MYSQL_BOTH (par défaut) : tableaux associatif et numérique Passons à un exemple. Imaginez la table suivante : Commencez par simplement faire une sélection des noms et des prénoms de toutes les personnes :
<?php
$db = mysql_connect("localhost", "root", "");
$resultat = mysql_select_db("bdd", $db);
$request = mysql_query('SELECT NOM, PRENOM FROM PERSONNES;', $db);
while ($valeur = mysql_fetch_array($request, MYSQL_NUM))
echo $valeur[0] . ' ' . $valeur[1] . '<br />';
?>
Si vous exécutez ce script, vous obtiendrez :
<div style="padding:5px;border:1px solid black;">
Einstein Albert
Eiffel Gustave
Cage Nicolas
</div>
Comme vous le voyez cela a très bien fonctionné. En effet, mysql_fetch_array lit un enregistrement, le convertit dans le tableau valeur qui sera du type numérique grâce à MYSQL_NUM et ensuite, il avance le curseur d'un pas dans le jeu d'enregistrement renvoyé par le SELECT. C'est ainsi qu'il avance d'enregistrement en enregistrement et qu'il sort de la boucle une fois qu'il n'a plus d'enregistrement à lire. Voyons maintenant comment cela fonctionnerait avec MYSQL_ASSOC :
<?php
$db = mysql_connect("localhost", "root", "");
$resultat = mysql_select_db("bdd", $db);
$request = mysql_query('SELECT NOM, PRENOM FROM PERSONNES;', $db);
while ($valeur = mysql_fetch_array($request, MYSQL_ASSOC))
echo $valeur['NOM'] . ' ' . $valeur['PRENOM'] . '<br />';
?>
Le résultat serait :
<div style="padding:5px;border:1px solid black;">
Einstein Albert
Eiffel Gustave
Cage Nicolas
</div>
Comme vous le voyez, c'est bien plus clair avec un tableau associatif. Les clés du tableau seront le nom des champs sélectionnés dans votre requête SQL. Si deux colonnes portent le même nom, c'est le résultat de la dernière colonne qui sera récupéré. Vous pourrez récupérez la valeur de la première colonne grâce à son index numérique et MYSQL_BOTH. D'une manière générale, nous vous conseillons de toujours faire attention à ce qu'aucune colonne de vos requêtes ne porte le même nom, utilisez donc les alias SQL pour éviter cela. Regardez l'exemple suivant avec MYSQL_BOTH :
<?php
$db = mysql_connect("localhost", "root", "");
$resultat = mysql_select_db("bdd", $db);
$request = mysql_query('SELECT NOM, PRENOM FROM PERSONNES;', $db);
while ($valeur = mysql_fetch_array($request))
echo $valeur['NOM'] . ' ' . $valeur[1] . '<br />';
?>
Encore une fois, le résultat sera le même. Veuillez vous identifier ou vous inscrire pour donner une note à cet article.
Aucun commentaire.
Veuillez vous identifier ou vous inscrire pour réagir à cet article.