Un objet en sortie d’une requête Mysql

Catégorie : PHP objet | Tag : , ,
Share

Parfois, on peut être un peu mordu de PHP objet, et au lieu de vouloir un array associatif (le nom du champ comme clé : @@mysql_fetch_assoc@@), ou un array indexé numériquement (un numéro comme clé : @@mysql_fetch_row@@ -> le plus rapide), on veut un objet « associatif » (le nom des champs comme attribut) grâce à @@mysql_fetch_object@@. C’est tout aussi rapide que @@mysql_fetch_assoc@@ ou @@mysql_fetch_array@@, un peu moins que @@mysql_fetch_row@@ (quand même) mais ça peut être utile. Le man[uel PHP|http://fr3.php.net/manual/fr] nous dit : @@mysql_fetch_object()@@ retourne un tableau qui contient la ligne demandée dans le résultat result et déplace le pointeur de données interne d’un cran. Voici un exemple d’utilisation (tiré du manuel PHP) avec matable(user_id, user_name, user_age) que voici : user_id user_name user_age%%% 1 Fylhan NULL%%% 2 BN 18%%% /// user_id.’ ‘; echo $row->user_name.’
‘; } } // Libération de la mémoire mysql_free_result($result); ?> /// Ceci renverra : > 1 Fylhan%%% > 2 BN%%% Il est possible de préciser en second paramètre une class résultat, et en troisième une liste de paramètre à fournir au constructeur. /// user_age = $user_age; } } // Exécution de la requête $result = mysql_query(‘select * from matable’); if (mysql_num_rows($result) == 0) echo ‘Aucun résultat.’; else { // Boucle sur les champs (chaque champ étant renvoyé en tant qu’objet) while ($row = mysql_fetch_object($result, ‘User’, array(’21′))) { echo $row->user_id.’ ‘; echo $row->user_name.’ ‘; echo $row->user_age.’
‘; } } // Libération de la mémoire mysql_free_result($result); ?> /// Ceci affichera : > 1 Fylhan 21%%% > 2 BN 21%%% Pour avoir une alternative à ce type de boucle, et simplement pour découvrir de nouvelles fonctions (qui fonctionneront aussi avec un mysql_fetch_asso/row/array) voici un dernier exemple : /// user_id . ‘ ‘ . $row->user_name.’
‘; } } ?> /// Et cet exemple affichera : > i = 0 : 1 Fylhan%%% > i = 1 : 2 BN%%% On l’aura compris, mysql_fetch_object est tout aussi facile à utiliser que ses équivalents procédurales, mais elle prend tout son sens lorsqu’on lui fournit une class en deuxième argument, voir des paramètres en troisième argument :D

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>