TD 11 et 12 : librairie CRUD en PHP (2/2)
1. Suppression d'un album :
Pour effacer un album de la table, on va créer la page
table1_delete.php
qui va recevoir en méthodeGET
l'id de l'album à effacer dans la table grâce au lien d'effacement danstable1_gestion.php
(fonctionafficherListe()
danslib_crud.inc.php
) :
La page
table1_delete.php
va contenir le code suivant :
Dans cette page, on récupère le numéro de l'album, on se connecte à la base de données, on appelle la fonction
effacerBD()
en lui passant deux paramètres : l'identifiant de connexion à la base de données ($co
) et le numéro de l'album à effacer ($id
).Il faut donc ajouter le code de la fonction
effacerBD()
danslib_crud.inc.php
:
Dans le code précédent, il faut évidemment remplacer
???
par la requête d'effacement d'un album dans la tablebandes_dessinees
. Attention, avec une requête de typeUPDATE
ouDELETE
, il faut absolument mettre une clauseWHERE
dans la requête ! Sinon, on efface ou on modifie toutes les lignes de la table.Dans l'exemple ci-dessous, j'avais ajouté l'album de titre "Jérôme", il apparaît bien dans la liste, j'appuie sur supprimer et il a effectivement disparu de la liste des albums.
2. Modification des données :
Pour modifier les données, on va utiliser le même formulaire que pour la création mais il faut le pré-remplir avec la valeur actuelle des champs.
Le code incomplet de
table1_update_form.php
est donné ici, il manque le pré-remplissage des champs prix et nombre de pages :
3. Fonction getBD()
pour récupérer les informations d'un album :
Pour pré-remplir les champs, on va créer une fonction
getBD()
danslib_crud.inc.php
qui va prendre en paramètres la connexion à la base de données et l'id de l'album à modifier.On va récupérer cet id et on va remplir une variable
$album
avec les informations pour cet album.Ajoutez la fonction
getBD()
danslib_crud.inc.php
, modifiez le code pour créer la "bonne" requête à la place de???
:
Il manque la sélection du "bon" auteur pour notre album. On va donc créer une fonction
afficherAuteursOptionsSelectionne()
qui va générer, comme la fonctionafficherAuteursOptions()
les balises<option>
du<select>
mais cette fonction va en plus ajouter l'attributselected="selected"
dans la balise pour pré-sélectionner l'auteur de l'album dans la liste.Le code de la fonction
afficherAuteursOptionsSelectionne
est donné ici, on remarque que l'on connaît le "bon" auteur car c'est le paramètre$idAuteur
qui le contient :
Testez votre code et vérifiez que le "bon" auteur est pré-sélectionné dans la liste.
4. Modification des données :
On donne le code de la page
table1_update_valide.php
:
Comme pour l'ajout, la page va récupérer les informations du formulaire de modification y compris la photo. On va ensuite appeler la fonction
modifierBD()
qui doit être créée danslib_crud.inc.php
et qui va réaliser la requête de modification des données dans la table.Le code de la fonction
modifierBD()
est donné ici :
Dans le code ci-dessus, modifiez la requête pour réaliser la modification de l'album dans la table.
Remarque : N'oubliez pas que les champs de type chaînes de caractères doivent être entourés de
"
dans les requêtes !Le résultat en images devrait ressembler à ceci :
5. À la fin :
Nettoyez votre code en enlevant tous les affichages inutiles : les requêtes et les
var_dump()
. Vous pouvez les mettre en commentaires pour ne plus les exécuter.N'oubliez pas de créer le CRUD complet pour la deuxième table (pour mon exemple, c'est la table
auteurs
mais pour vous cela dépend de ce que vous avez en deuxième table). Les deux CRUDs : pour la table 1 et la table 2 seront évalués pour votre note finale en SAE203.Félicitations, vous avez réussi à créer un code CRUD en PHP pour la table 1, il vous faut faire la même chose (en plus simple car la table a normalement moins de champs) pour la table 2.
Si vous avez compris ce CRUD, vous saurez TOUS les faire, c'est toujours la même technique, ce qui change, c'est le nom de la table et le nom des champs.
Bon courage, portez-vous bien ! :)
Dernière mise à jour