note 32623 deleted from function.mysql-result by didou

From: Date: Tue, 03 Jun 2003 10:58:20 +0000
Subject: note 32623 deleted from function.mysql-result by didou
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-49609@lists.php.net to get a copy of this message
Note Submitter: Boris Sanègre ---- /* Chargement rapide de toutes les variables d'une table ***************************************************** Faites vous plaisir, optimsez cette fonction ! Créé par : Boris Sanègre - 2003.06.02 Amélioré par: C'est à vous ... Merci à: HAPedit, www.php.net Cette fonction permet de créer les variables d'un table MySQL pour un enregistrement particulier. Prenons un exemple: Vous avez une page index.php contenant des objet HTML (liste, text, textarea ...) Vous souhaitez charger les données d'une Fiche N°23 d'une table "recette". Solution: Le nom des variables définissant le valeurs par défaut des objets HTML doivent être identique au nom des champs de la table: Nom de la table: recette Champs: id_recette nom_recette ... (et 450 autres champs) Donc dans votre code, il y a les variables $id_recette, $nom_recette (...etc.) pour les 'value=' de vos objets HTML Pour charger l'enregistrement N°23, mettez en début de page # $nom_table = 'recette'; # $id_recette = '23'; //Cette variable sera INDIRECTEMENT //reprise par la fonction # mysql_table_load($nom_table); La fonction recherche l'existance des clefs et leur valeur Et toute vos variables sont chargées immédiatement!! Très utile lorsqu'il y a beaucoup de variables. Voici la fonction en question à inclure. Note: Une fois la saisie terminée, vous pouvez utiliser la fonction perso mysql_table_operation() Remarque: La seule contrainte est d'être rigoureux dans le nom des champs MySQL et des variables ... mais la rigeure devient efficacité sur le long terme. */ function mysql_table_load($nom_table) { /* Dictionnaire des variables: *************************** */ $bdd = $GLOBALS['bdd']; //Variable Globale définissant le nom de la base de données MySQL $nom_table; //Nom de la table à charger $premiere_operateur_where = 1; //Permet de supprimer les AND en trop dans la //construction des WHERE /* Travaux préparatoires: ********************** */ //Requête MySQL $req_where = " WHERE "; //Recherche des clefs de la table $propriete = mysql_query("DESC $nom_table"); while ($rows1=mysql_fetch_array($propriete)) { //Création de la variable potentiellement PRIMARY KEY $primary_key = $rows1[Field]; //Est-ce que ce champ est une clef et qu'une variable est définit if ( ($rows1[Key]=="PRI") AND (isset($GLOBALS["$primary_key"])) ) { //Affectation de la valeur de la variables $$primary_key = $GLOBALS["$primary_key"]; //Intégration de la clef PRIMAIRE dans les requêtes $operateur = " AND "; if ($premiere_operateur_where) { $operateur = ''; } $premiere_operateur_where = 0; $req_where .=$operateur . "" . $primary_key ."" . "=" . "'" . $$primary_key . "'" ; }//Fin de Recherche de la clef sur ce champ }//Fin de recherche des clefs $req1 = "SELECT * FROM $nom_table " . $req_where; $result1 = mysql_query($req1); /* Corps de la fonction ******************** */ $fields = mysql_list_fields($bdd, $nom_table); $num_fields = mysql_num_fields($fields); for ($i = 0; $i < $num_fields; $i++) { //Récupération du nom de la variables $nom_variable = mysql_field_name($fields, $i); //Exportation de la valeur de la variable dans //Une variable globale accessible hors de la fonction $GLOBALS[$nom_variable] = mysql_result($result1, 0, $nom_variable); } }//Fin de mysql_table_load()

« previous php.notes (#49609) next »