Mysql_result ou mysql_fetch_array

Fermé
bobox87 Messages postés 32 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 25 juillet 2011 - 10 sept. 2010 à 19:37
bobox87 Messages postés 32 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 25 juillet 2011 - 11 sept. 2010 à 11:46
Bonjour,

Voilà j'ai une question d'ordre pratique. Lorsque l'on cherche un champ dans la base de données et qu'on veut ensuite le stocker dans une variable, est-il préférable d'utiliser mysql_result ou mysql_fetch_array ?

Avec mysql_result j'arrive a tout faire en une ligne (cf.code) tandis que avec le mysql_fetch_array je suis obligé de modifier ma requete en rajoutant AS 'un champ' avant le FROM puis de passer par une autre étape avant de mettre le résultat dans ma variable.

// On sélectionne le nombre de points de l'utilisateur, puis on ajoute 5 points et on stock le total ds la variable nb_points 
$nb_points = mysql_result(mysql_query('SELECT membre_points FROM membres WHERE membre_id = "'.$produit_membre_id_ajout.'"'),0) + 5;	
				
// Puis on met à jour le nombre de points du membre
mysql_query("UPDATE membres SET membre_points='" . $nb_points . "' WHERE membre_id = '" . $produit_membre_id_ajout . "'");	


2 réponses

fightwithdogma
10 sept. 2010 à 22:43
Par définition, mysql_result(sql) sert à stocker UN champs. mysql_fetch_array(sql) Te sert à stocker PLUSIEURS valeurs et leurs index.
A toi de voir, a ta place, je continuerai sur mysql_result(sql).
0
bobox87 Messages postés 32 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 25 juillet 2011 1
11 sept. 2010 à 11:46
Oki merci pour la confirmation.

J'avais ça dans la doc

mysql_result: Retourne le contenu d'un champ d'un jeu de résultats MySQL.

Lorsque vous travaillez sur des résultats de grande taille, il est conseillé d'utiliser une des fonctions qui vont rechercher une ligne entière dans un tableau. Ces fonctions sont NETTEMENT plus rapides. De plus, utiliser un offset numérique est aussi beaucoup plus rapide que spécifier un nom littéral.

Mais je me posais la question car si la table à des milliers de lignes je ne sais pas quelle méthode est la plus approprié et surtout la plus rapide!
0