CRUD complet — Articles du blog
Create, Read, Update, Delete avec formulaires et pagination
Concepts Théoriques
CRUD signifie Create, Read, Update, Delete — les 4 opérations fondamentales sur les données. Ce chapitre les implémente complètement pour les articles de DevBlog, avec des formulaires, de la validation, et de la pagination.
Le flux d'une opération CRUD
Create (Créer) :
- Afficher le formulaire (GET)
- Traiter la soumission (POST) : valider, nettoyer, insérer en base, rediriger avec message flash
Read (Lire) :
- Liste paginée (articles.php?page=2)
- Détail par slug (article.php?slug=mon-article)
Update (Modifier) :
- Pré-remplir le formulaire avec les données existantes (GET)
- Traiter la soumission (POST) : valider, nettoyer, UPDATE en base, rediriger
Delete (Supprimer) :
- Confirmer la suppression (formulaire POST avec l'id)
- DELETE en base, rediriger avec message flash
> Important : La suppression DOIT être un POST (ou DELETE), jamais un lien GET. Un robot ou un crawler pourrait suivre un lien de suppression et supprimer tous vos articles.
La pagination
Pour afficher les articles page par page :
- Compter le total : SELECT COUNT(*) FROM articles WHERE published = 1
- Calculer le nombre de pages : ceil($total / $perPage)
- Récupérer la page courante : $page = max(1, (int)($_GET['page'] ?? 1))
- Calculer l'offset : ($page - 1) * $perPage
- Requête avec LIMIT et OFFSET
Le slug automatique
À la création d'un article, le slug est généré automatiquement à partir du titre avec la fonction slugify() créée au chapitre 2. Si le slug existe déjà, ajoutez un suffixe (-2, -3, etc.).