Version complète: sur le forum Webmaster Hub : Obtenir la valeur d'un Champ rapidement
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
Phénol
Bonjour,

Je cherche un moyen plus simple que mon procédé (ci-dessous) de récupérer la valeur d'un champs...

CODE
$sql = mysql_query("SELECT nom FROM utilisateurs WHERE id='1'");
$row = mysql_fetch_array($sql);
echo $row['nom'];


Sachant qu'il n'y aura qu'un enregistrement répondant à l'id unique '1', y'a-t-il un moyen plus simple d'arriver à obtenir la valeur du champs 'nom' plus facilement qu'avec ce procédé ?

Merci !
TheRec
Bonsoir,

Si par plus simple tu veux dire plus court tu peux faire ainsi :
CODE
echo mysql_result(mysql_query("SELECT nom FROM utilisateurs WHERE id='1'"),0,0);

Le deuxième "0" (troisième paramètre) n'est pas nécessaire, il sert à définir le champ à retourner, mais comme tu n'en as qu'un et que c'est celui que tu veux retourner ce paramètre est facultatif... je le mets par pure habitude wink.gif

Sinon, non pour obtenir la valeur d'un champ pour un enregistrement donné, rien de plus efficace qu'une requête sur la table où se trouve l'information recherchée wink.gif
Phénol
Merci !

Et si je veux récuprer 2 champs (nom et prenom par exemple), comment adapter cela ??...
TheRec
Tu pourrais le faire ainsi :
CODE
$result = mysql_query("SELECT nom, prenom FROM utilisateurs WHERE id='1'");
echo mysql_result($result,0,0).mysql_result($result,0,1);

**EDIT** J'ai supprimé une partie de mon message...qui ne te servait pas vraiment.
Phénol
Impec ! smile.gif Merci !
TheRec
De rien, mais rien ne t'empêche d'utiliser mysql_fetch_array comme tu le fais dans le premier exemple. L'utilisation de ressources supplémentaires est négligeable à mon avis (allocation d'un tableau et accès aux données par un index). Tu recherches la syntaxe "la plus simple", mais il faudrait définir cette expression wink.gif (Celle qui utilise le moins de ressources, celle qui rend le code plus lisible, etc.) wink.gif
aspeum
Est-ce que rajouter "LIMIT 1" à la fin de la requête n'accélèrerait pas un tantinet l'opération ?
TheRec
C'est juste. Il y a une liste des cas ou LIMIT optimise les requêtes SELECT :
CITATION
Aussitôt que MySQL a envoyé les premières # lignes au client, il annule le reste de la requête (si vous n'utilisez pas la fonction SQL_CALC_FOUND_ROWS).
Source: 7.2.12 Comment MySQL optimise LIMIT
Bien vu aspeum wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.