Phénol Posté 27 Février 2007 Posté 27 Février 2007 Bonjour, Je cherche un moyen plus simple que mon procédé (ci-dessous) de récupérer la valeur d'un champs... $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 Posté 27 Février 2007 Posté 27 Février 2007 Bonsoir, Si par plus simple tu veux dire plus court tu peux faire ainsi : 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 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
Phénol Posté 27 Février 2007 Auteur Posté 27 Février 2007 Merci ! Et si je veux récuprer 2 champs (nom et prenom par exemple), comment adapter cela ??...
TheRec Posté 27 Février 2007 Posté 27 Février 2007 Tu pourrais le faire ainsi : $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.
TheRec Posté 27 Février 2007 Posté 27 Février 2007 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 (Celle qui utilise le moins de ressources, celle qui rend le code plus lisible, etc.)
aspeum Posté 2 Mars 2007 Posté 2 Mars 2007 Est-ce que rajouter "LIMIT 1" à la fin de la requête n'accélèrerait pas un tantinet l'opération ?
TheRec Posté 2 Mars 2007 Posté 2 Mars 2007 C'est juste. Il y a une liste des cas ou LIMIT optimise les requêtes SELECT : 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 LIMITBien vu aspeum
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant