Récupérer valeur de champs dans une table

Eléphanteau du PHP | 19 Messages

26 août 2009, 12:25

Bonjour à tous,

Je possède actuellement une table de stocker des variables dans le champ 'name_option' avec sa valeur correspondant dans le champ 'value_option'.

Je souhaiterais pouvoir afficher chaque valeur mais je vois pas trop comment m'y prendre du fait que je fais référence à la valeur du champ dans cet exemple et non son nom.

Je veux par exemple afficher la valeur 'Mon site' en spécifiant le valeur 'nom_site'.

Champs : id_option | name_option | value_option

1 | nom_site | Mon site
2 | url_site | http://www.monsite.com
3 | email_expediteur | [email protected]
4 | email_envoi | [email protected]
5 | .............. : ................

Merci pour votre aide,

José

Mammouth du PHP | 985 Messages

26 août 2009, 12:44

Je possède actuellement une table de stocker des variables dans le champ 'name_option' avec sa valeur correspondant dans le champ 'value_option'.
Je souhaiterais pouvoir afficher chaque valeur mais je vois pas trop comment m'y prendre du fait que je fais référence à la valeur du champ dans cet exemple et non son nom.
Bien tu fais une Sql Querry avec un SELECT pointant sur name_option et tu demandes d'afficher toutes les valeurs correspondantes.
Mais pas certain, que ce soit ta question, ou d'avoir bien compris ta question, car je ne voie pas le soucis avec les valeurs ici...

Si c'est pour afficher une valeur particulière, tu utilises genre WHERE name_option='value_option' ...
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphanteau du PHP | 19 Messages

26 août 2009, 12:49

Oui, ça me convient mais je voudrais faire une fonction pour éviter de faire une requête à chaque fois que je veux afficher la valeur d'un champs.

Mammouth du PHP | 985 Messages

26 août 2009, 13:09

Oui, ça me convient mais je voudrais faire une fonction pour éviter de faire une requête à chaque fois que je veux afficher la valeur d'un champs.
Bien je suis loin d'être un pro SQL, mais ta requête est le SELECT, ensuite tu affiches le nombre de valeurs que tu veux, cela exécutera toujours une et une seule requête.

Exemple (résumé):
$sql_query="SELECT ..." // la requête
$result_query=mysql_query($sql_query); //exécution de la requête
while ($resultat = mysql_fetch_assoc($result_query)) { // la bouche pour afficher les résultats
echo '... ' . $resultat["name_option"] . '...' // quel que soit le nombre de lignes ou résultats -> 1 requête
}
Mais si je me trompe, quelqu'un viendra rectifier :wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
ViPHP | 4039 Messages

26 août 2009, 14:06

Quelque chose du genre, si je te suis bien:
function lectureValeur($nom_valeur)
   {
   $result = mysql_query("SELECT value_option FROM table WHERE name_option='$nom_valeur'");
   if (!$result) 
      {
      return false; // ou quelque chose du genre return "valeur $nom_valeur non trouvée";
      }
   $row = mysql_fetch_row($result);
   return $row[0];
   }

//ensuite:
$nomDuSite = lectureValeur("nom_site");
En considérant qu'une requête préparée est sans plus sécurisée, et qu'une meilleure gestion d'absence de la valeur serait souhaitable, et que mysqli est à préférer au simple mysql.
Modifié en dernier par Berzemus le 26 août 2009, 14:08, modifié 1 fois.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 19 Messages

26 août 2009, 14:08

J'ai essayé ce que tu m'as montré Drake.
Je n'ai pas d'erreurs PHP mais rien ne s'affiche non plus.

Code : Tout sélectionner

$sql_query="SELECT value_option from seo_options WHERE name_option='value_option'"; // la requête $result_query = mysql_query($sql_query); //exécution de la requête while ($resultat = mysql_fetch_assoc($result_query)) { // la bouche pour afficher les résultats echo $resultat["nom_site"]; // quel que soit le nombre de lignes ou résultats -> 1 requête }
Je m'explique un peu plus, je suis en train de créer mon propre CMS pour des besoins personnels et en étudiant de près Wordpress je me suis rendu compte qu'il affiche de la même manière leur valeur en faisant 'form_option('admin_email');'.

J'ai recherché la fonction sans rien trouvé.

Mammouth du PHP | 985 Messages

26 août 2009, 14:13

C'était juste un petit exemple non complet et peut-être pas adapté à ce que tu aimerais réellement ...
Je suis assez novice en SQL.
Mieux de prendre exemple sur la fonction à Berzemus
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphanteau du PHP | 19 Messages

26 août 2009, 14:16

Merci à vous 2.

La fonction de Berzemus fonctionne parfaitement.