PHP : Le tutoriel pour grands débutants pressés
PHP : Le tutoriel pour grands débutants pressés
Date de publication : 17 janvier 2009
VII. PHP ETAPE 7
VII-1. Les bases de données : suite et fin
VII-1-a. Pour travailler proprement (Généralités)
VII-1-b. Le code pour récupérer toutes les filles
VII-2. Un exemple (plus complexe) de relation dynamique entre php et sql
VII-3. TP7
VII-4. Correction du TP7
VII. PHP ETAPE 7
VII-1. Les bases de données : suite et fin
Nous savons maintenant remplir une base.
Reste à savoir l'exploiter et y récupérer les données souhaitées dans le cadre PHP.
Pour la suite de ce paragraphe, reprenez votre base MaBase, et votre table utilisateurs déjà riche d'au moins 5 enregistrements, voire plus si vous avez entré des données via votre formulaire...
En passant, avant de continuer, vérifiez dans votre base qu'il n'y a aucun doublon sur votre table, et supprimer les manuellement avant de continuer...
Pour supprimer un enregistrement, cliquez d'abord sur rechercher dans la table, qui vous affiche toutes les données de votre table.
Puis cliquez sur l'enregistrement à annuler, puis sur la croix rouge pour l'action "delete".
Reste à savoir l'exploiter et y récupérer les données souhaitées dans le cadre PHP.
Pour la suite de ce paragraphe, reprenez votre base MaBase, et votre table utilisateurs déjà riche d'au moins 5 enregistrements, voire plus si vous avez entré des données via votre formulaire...
En passant, avant de continuer, vérifiez dans votre base qu'il n'y a aucun doublon sur votre table, et supprimer les manuellement avant de continuer...
Pour supprimer un enregistrement, cliquez d'abord sur rechercher dans la table, qui vous affiche toutes les données de votre table.
Puis cliquez sur l'enregistrement à annuler, puis sur la croix rouge pour l'action "delete".
On a déjà mentionné la syntaxe sql d'une simple requête :
SELECT * WHERE pseudo="Zézette"
pour récupérer toutes la ligne d'infos concernant notre amie Zézette par exemple.
SELECT * WHERE pseudo="Zézette"
pour récupérer toutes la ligne d'infos concernant notre amie Zézette par exemple.
Sauf que ce sont plusieurs infos (l'ID, le pseudo, le sexe, l'âge, et la date d'inscription de notre amie), et qu'en PHP, on va devoir stocker ça dans un... tableau bien sûr.
Chaque enregistrement récupéré sur ma base devra donc être stocké dans un tableau pour PHP.
Chaque enregistrement récupéré sur ma base devra donc être stocké dans un tableau pour PHP.
Du coup, pour récupérer un enregistrement dans ce tableau, on va utiliser la fonction PHP destinée à mysql : mysql_fetch_array($TrucRecupereSurSql), pour être sûr de ne rien rater :
Ainsi l'on récupère un tableau associatif qui a pour indice... le nom de chaque champ.
C'est pas plus pratique comme ça ?
Ainsi l'on récupère un tableau associatif qui a pour indice... le nom de chaque champ.
C'est pas plus pratique comme ça ?
VII-1-a. Pour travailler proprement (Généralités)
Voici cette fois l'ordre logique pour un code PHP propre qui lance une requête sql
- On se connecte à la base (en utilisant notre fonction de connexion toute prête).
- On prépare la commande sql en la stockant dans une variable PHP du type $sql (pour langage sql).
- On la lance, en récupérant le résultat dans une variable que nous appellerons $req (pour requete sql et qui pourra être un tableau si le résultat dépasse un élément).
- Si c'est un tableau : On scanne $req avec une boucle while (car on ne sait pas toujours le nombre de champs, ni d'enregistrements) et grâce à la fonction mysql_fetch_array($req), chaque élément de ce tableau se convoquera ainsi : $data['champ'].
- Maintenant qu'on a tout récupéré dans des variables "solides" PHP, on libère la mémoire sql mobilisée par cette requête.
- On ferme la connexion sql.
Maintenant le code devrait vous paraître moins barbare...
VII-1-b. Le code pour récupérer toutes les filles
Je souhaite construire une page infos.php qui affiche toutes les infos sur toutes les filles dans ma base MaBase, table utilisateurs.
Un code de récupération de données sql : Où sont les femmes ? |
|
C'est beau hein ? Et bon, ça marche.
Testez, bidouillez, triturez...
Cherchez les hommes, cherchez les gens âgés de plus de tel âge etc...
Bref, familiarisez vous avec le code avant d'attaquer le paragraphe suivant, qui pousse un peu plus loin...
VII-2. Un exemple (plus complexe) de relation dynamique entre php et sql
Creusons ce chapitre pour aborder une idée supplémentaire :
Vous souhaitez laisser à l'utilisateur (imaginons que vous programmez une partie administration ou back office d'un site) le choix de son critère de recherche.
Il entre dans un formulaire les critères choisis, et votre code fait le reste.
Cela signifie que l'on veut obtenir une variable $sql du type :
$sql = 'SELECT * FROM utilisateurs WHERE '.$champ.'="'.$critere.'"';
Ne restent plus qu'à proposer un formulaire où l'administrateur entrera son choix de champ et de critère...
Il faut donc lui construire la liste de champs sous forme de liste déroulante en "tapant" dans la base une première fois : il n'est pas censé connaître la base par coeur...
Quelle requête pouvons nous faire pour récupérer tous les champs d'une table ?
$sql = 'Show fields from utilisateurs';
Vous souhaitez laisser à l'utilisateur (imaginons que vous programmez une partie administration ou back office d'un site) le choix de son critère de recherche.
Il entre dans un formulaire les critères choisis, et votre code fait le reste.
Cela signifie que l'on veut obtenir une variable $sql du type :
$sql = 'SELECT * FROM utilisateurs WHERE '.$champ.'="'.$critere.'"';
Ne restent plus qu'à proposer un formulaire où l'administrateur entrera son choix de champ et de critère...
Il faut donc lui construire la liste de champs sous forme de liste déroulante en "tapant" dans la base une première fois : il n'est pas censé connaître la base par coeur...
Quelle requête pouvons nous faire pour récupérer tous les champs d'une table ?
$sql = 'Show fields from utilisateurs';
Bon ben, ya plus qu'à !
Partie admin du site : exemple de codage de back-office |
|
VII-3. TP7
Repartez de la correction du TP6 qui gérait la table abonnements.
Si ce n'est déjà fait, récupérez les fichiers abonnement.php, fonctions.php et veillez à construire la table abonnes dans phpMyAdmin.
Insérez (via le formulaire) au moins 10 enregistrements en variant largement les données du type age, civilité et Code Postal.
Si vous manquez totalement d'imagination, voici un exemple :
Si ce n'est déjà fait, récupérez les fichiers abonnement.php, fonctions.php et veillez à construire la table abonnes dans phpMyAdmin.
Insérez (via le formulaire) au moins 10 enregistrements en variant largement les données du type age, civilité et Code Postal.
Si vous manquez totalement d'imagination, voici un exemple :

Un exemple d'abonnés à nos abonnements
Maintenant, construisez la partie administration dans un fichier infoabo.php qui se présente ainsi :
|
Quand l'administrateur clique OK, l'info sélectionnée apparaît propre en dessous du formulaire de départ, ce qui lui permet de recommencer à loisir ces recherches.
Ajoutez enfin un bouton quitter, qui vous ramène à la page abonnement.php.
Et une fois n'est pas coutume, vous pouvez copier-coller tout ce que vous voulez !
(heu, sauf la correction qui suit bien sûr)...
VII-4. Correction du TP7
Veuillez cliquer sur le symbole à droite pour découvrir la solution quand vous aurez fini.
infoabo.php |
|