├── README.md
├── add.php
├── close.php
├── connect.php
├── delete.php
├── details.php
├── disable.php
├── edit.php
└── index.php
/README.md:
--------------------------------------------------------------------------------
1 | # php-crud
2 | Créer un crud en PHP. Article correspondant : https://nouvelle-techno.fr/actualites/live-coding-creer-un-crud-en-php
3 |
--------------------------------------------------------------------------------
/add.php:
--------------------------------------------------------------------------------
1 | prepare($sql);
20 |
21 | $query->bindValue(':produit', $produit, PDO::PARAM_STR);
22 | $query->bindValue(':prix', $prix, PDO::PARAM_STR);
23 | $query->bindValue(':nombre', $nombre, PDO::PARAM_INT);
24 |
25 | $query->execute();
26 |
27 | $_SESSION['message'] = "Produit ajouté";
28 | require_once('close.php');
29 |
30 | header('Location: index.php');
31 | }else{
32 | $_SESSION['erreur'] = "Le formulaire est incomplet";
33 | }
34 | }
35 |
36 | ?>
37 |
38 |
39 |
40 |
41 |
42 | Ajouter un produit
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
53 | '. $_SESSION['erreur'].'
54 |
';
55 | $_SESSION['erreur'] = "";
56 | }
57 | ?>
58 | Ajouter un produit
59 |
75 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/close.php:
--------------------------------------------------------------------------------
1 | exec('SET NAMES "UTF8"');
6 | } catch (PDOException $e){
7 | echo 'Erreur : '. $e->getMessage();
8 | die();
9 | }
--------------------------------------------------------------------------------
/delete.php:
--------------------------------------------------------------------------------
1 | prepare($sql);
16 |
17 | // On "accroche" les paramètre (id)
18 | $query->bindValue(':id', $id, PDO::PARAM_INT);
19 |
20 | // On exécute la requête
21 | $query->execute();
22 |
23 | // On récupère le produit
24 | $produit = $query->fetch();
25 |
26 | // On vérifie si le produit existe
27 | if(!$produit){
28 | $_SESSION['erreur'] = "Cet id n'existe pas";
29 | header('Location: index.php');
30 | die();
31 | }
32 |
33 | $sql = 'DELETE FROM `liste` WHERE `id` = :id;';
34 |
35 | // On prépare la requête
36 | $query = $db->prepare($sql);
37 |
38 | // On "accroche" les paramètre (id)
39 | $query->bindValue(':id', $id, PDO::PARAM_INT);
40 |
41 | // On exécute la requête
42 | $query->execute();
43 | $_SESSION['message'] = "Produit supprimé";
44 | header('Location: index.php');
45 |
46 |
47 | }else{
48 | $_SESSION['erreur'] = "URL invalide";
49 | header('Location: index.php');
50 | }
51 |
--------------------------------------------------------------------------------
/details.php:
--------------------------------------------------------------------------------
1 | prepare($sql);
16 |
17 | // On "accroche" les paramètre (id)
18 | $query->bindValue(':id', $id, PDO::PARAM_INT);
19 |
20 | // On exécute la requête
21 | $query->execute();
22 |
23 | // On récupère le produit
24 | $produit = $query->fetch();
25 |
26 | // On vérifie si le produit existe
27 | if(!$produit){
28 | $_SESSION['erreur'] = "Cet id n'existe pas";
29 | header('Location: index.php');
30 | }
31 | }else{
32 | $_SESSION['erreur'] = "URL invalide";
33 | header('Location: index.php');
34 | }
35 | ?>
36 |
37 |
38 |
39 |
40 |
41 | Détails du produit
42 |
43 |
44 |
45 |
46 |
47 |
48 | Détails du produit = $produit['produit'] ?>
49 | ID : = $produit['id'] ?>
50 | Produit : = $produit['produit'] ?>
51 | Prix : = $produit['prix'] ?>
52 | Nombre : = $produit['nombre'] ?>
53 | Retour Modifier
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/disable.php:
--------------------------------------------------------------------------------
1 | prepare($sql);
16 |
17 | // On "accroche" les paramètre (id)
18 | $query->bindValue(':id', $id, PDO::PARAM_INT);
19 |
20 | // On exécute la requête
21 | $query->execute();
22 |
23 | // On récupère le produit
24 | $produit = $query->fetch();
25 | // On vérifie si le produit existe
26 | if(!$produit){
27 | $_SESSION['erreur'] = "Cet id n'existe pas";
28 | header('Location: index.php');
29 | }
30 |
31 | $actif = ($produit['actif'] == 0) ? 1 : 0;
32 |
33 | $sql = 'UPDATE `liste` SET `actif`=:actif WHERE `id` = :id;';
34 |
35 | // On prépare la requête
36 | $query = $db->prepare($sql);
37 |
38 | // On "accroche" les paramètres
39 | $query->bindValue(':id', $id, PDO::PARAM_INT);
40 | $query->bindValue(':actif', $actif, PDO::PARAM_INT);
41 |
42 | // On exécute la requête
43 | $query->execute();
44 |
45 | header('Location: index.php');
46 |
47 | }else{
48 | $_SESSION['erreur'] = "URL invalide";
49 | header('Location: index.php');
50 | }
51 |
52 |
--------------------------------------------------------------------------------
/edit.php:
--------------------------------------------------------------------------------
1 | prepare($sql);
22 |
23 | $query->bindValue(':id', $id, PDO::PARAM_INT);
24 | $query->bindValue(':produit', $produit, PDO::PARAM_STR);
25 | $query->bindValue(':prix', $prix, PDO::PARAM_STR);
26 | $query->bindValue(':nombre', $nombre, PDO::PARAM_INT);
27 |
28 | $query->execute();
29 |
30 | $_SESSION['message'] = "Produit modifié";
31 | require_once('close.php');
32 |
33 | header('Location: index.php');
34 | }else{
35 | $_SESSION['erreur'] = "Le formulaire est incomplet";
36 | }
37 | }
38 |
39 | // Est-ce que l'id existe et n'est pas vide dans l'URL
40 | if(isset($_GET['id']) && !empty($_GET['id'])){
41 | require_once('connect.php');
42 |
43 | // On nettoie l'id envoyé
44 | $id = strip_tags($_GET['id']);
45 |
46 | $sql = 'SELECT * FROM `liste` WHERE `id` = :id;';
47 |
48 | // On prépare la requête
49 | $query = $db->prepare($sql);
50 |
51 | // On "accroche" les paramètre (id)
52 | $query->bindValue(':id', $id, PDO::PARAM_INT);
53 |
54 | // On exécute la requête
55 | $query->execute();
56 |
57 | // On récupère le produit
58 | $produit = $query->fetch();
59 |
60 | // On vérifie si le produit existe
61 | if(!$produit){
62 | $_SESSION['erreur'] = "Cet id n'existe pas";
63 | header('Location: index.php');
64 | }
65 | }else{
66 | $_SESSION['erreur'] = "URL invalide";
67 | header('Location: index.php');
68 | }
69 |
70 | ?>
71 |
72 |
73 |
74 |
75 |
76 | Modifier un produit
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
87 | '. $_SESSION['erreur'].'
88 |
';
89 | $_SESSION['erreur'] = "";
90 | }
91 | ?>
92 | Modifier un produit
93 |
110 |
111 |
112 |
113 |
114 |
--------------------------------------------------------------------------------
/index.php:
--------------------------------------------------------------------------------
1 | prepare($sql);
12 |
13 | // On exécute la requête
14 | $query->execute();
15 |
16 | // On stocke le résultat dans un tableau associatif
17 | $result = $query->fetchAll(PDO::FETCH_ASSOC);
18 |
19 | require_once('close.php');
20 | ?>
21 |
22 |
23 |
24 |
25 |
26 | Liste des produits
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
37 | '. $_SESSION['erreur'].'
38 |
';
39 | $_SESSION['erreur'] = "";
40 | }
41 | ?>
42 |
45 | '. $_SESSION['message'].'
46 | ';
47 | $_SESSION['message'] = "";
48 | }
49 | ?>
50 | Liste des produits
51 |
52 |
53 | ID |
54 | Produit |
55 | Prix |
56 | Nombre |
57 | Actif |
58 | Actions |
59 |
60 |
61 |
65 |
66 | = $produit['id'] ?> |
67 | = $produit['produit'] ?> |
68 | = $produit['prix'] ?> |
69 | = $produit['nombre'] ?> |
70 | = $produit['actif'] ?> |
71 | A/D Voir Modifier Supprimer |
72 |
73 |
76 |
77 |
78 | Ajouter un produit
79 |
80 |
81 |
82 |
83 |
--------------------------------------------------------------------------------