Toujours avec MySQL ( de toutes facons, les vraies optimisations ( celles qui font gagner plus que quelques dixièmes de miscroseconde ) ne touchent principalement que les accès BDD).
Il arrive fréquement lors d'un SELECT, notemment lorsqu'un spécifie un WHERE ou équivalent dans la requête, que l'on sache a 100% que le retour de la requete ne comportera qu'un seul enregistrement.
Déja, la première bonne idée c'est de ne pas faire de boucle, on peut y aller directement comme ceci :
$results = mysql_fetch_array(mysql_query("SELECT * FROM table WHERE champ = 'valeur'"));
Ensuite, si l'on est toujours dans la meme configuration et que en plus, on nomme les champs que l'on va selectionner dans la requete, au lieu de faire comme ci dessus et d'ensuite utiliser le tableau '$results', on peut utiliser une fonction assez méconue : list(), comme ceci:
list($var1, $var2, $varn) = mysql_fetch_row(mysql_query("SELECT champ1, champ2, champn FROM table WHERE champx = 'valeur'"));
On peut ainsi utiliser directement les variables, en plus on utilise un mysql_fetch_row au lieu d'un
mysql_fetch_array.
Les malins auront compris que dans le cas ou les retours de requetes sont multiples, on peut utiliser list() sur le tableau analysé par la boucle pour des raisons pratiques.
Partager