logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement

Leçons PHP - leçon 3.4 - Travail avec la base de données MySQL. Requêtes de suppression DELETE.

05/07/2025, by Ivan

Dans la leçon précédente, nous avons vu comment ajouter de nouvelles méthodes à notre classe de gestion simpleCMS, maintenant ajoutons une méthode pour supprimer une entrée : delete().

Nous allons ajouter la méthode comme d’habitude :

public function delete($mid){
    
}  

Comme vous le voyez, nous passons le paramètre $mid - l’ID de notre enregistrement. Si vous vous souvenez de la leçon précédente, nous avions décidé d’utiliser une autre méthode pour passer ce paramètre, directement via la requête GET, mais ici nous allons essayer une autre méthode.

Donc, la méthode est définie, écrivons maintenant le traitement dans le fichier index.php :

switch ($_GET['admin']){
    case 'add':
        print $obj->display_admin(); // si la variable vaut 'add', afficher le formulaire d’ajout
        break;
    case 'update':
        print $obj->display_update();  // si la variable vaut 'update', afficher le formulaire de modification
        break;
    case 'delete':
        if($_GET['mid']){ // si la variable vaut 'delete', vérifier la présence de mid
            $obj->delete($_GET['mid']); // appeler la méthode de suppression
            print $obj->display_public(); // sinon afficher les messages
        }else{
            print '<p>mid non sélectionné !</p>';
            print $obj->display_public(); // afficher la liste des messages			
        }
        break;
    default:
        print $obj->display_public(); // si la variable n’existe pas, afficher les messages
}

Pour que tout fonctionne correctement et que le message soit supprimé, l’URL doit être :

http://test/index.php?admin=delete&mid=7

Dans ce cas, le message avec mid=7 sera supprimé. Pour cela, écrivons l’implémentation de la méthode delete() :

public function delete($mid){
    mysql_query('DELETE FROM Messages WHERE mid='.$mid) or die(mysql_error());
}  

Analysons la requête mysql DELETE pour supprimer une entrée. On commence par le mot DELETE, suivi de FROM. Après FROM, on indique la table dont il faut supprimer des enregistrements (ATTENTION ! sans condition WHERE, toutes les entrées seront supprimées !), puis on indique la condition de suppression. Ici, nous ciblons l’entrée dont mid correspond au paramètre passé à la méthode. Enfin, on vérifie si la requête a réussi ou non.

Comme mentionné précédemment, notre méthode sera appelée quand l’URL contient deux paramètres : admin=delete&mid=7. Pour cela, ajoutons des liens sous chaque message, en modifiant la méthode display_public() :

public function display_public() { // méthode d’affichage des messages
    $content = '';
    $sql = 'SELECT * FROM Messages ORDER BY mid DESC'; // requête de sélection
    $result = mysql_query($sql) or die(mysql_error());  // on stocke le résultat de la requête
    while($row = mysql_fetch_array($result)){ // on traite chaque ligne avec mysql_fetch_array()
        $content .= '<div class="post" id="mid-' . $row['mid'] . '">'; // div contenant le message
        $content .= '<span class="time">#' . $row['mid'] . ' du ' . date('d-m-Y', $row['created']) . '</span><h2>' . $row['title'] . '</h2>'; 	// affichage de la date et du titre
        $content .= '<p>' . $row['bodytext'] . '</p>'; // affichage du contenu du message
        $content .= '<p>';
        $content .= '<a href="/index.php?admin=update&mid=' . $row['mid'] . '">Modifier le message</a>'; // lien vers modification
        $content .= '<a href="/index.php?admin=delete&mid=' . $row['mid'] . '">Supprimer le message</a>'; // lien vers suppression
        $content .= '</p>';
        $content .= '</div>'; // fin du div
    }
    $content .= '<p><a href="/index.php?admin=add">Ajouter un message</a></p>';
    return $content;
}

Maintenant, quand on clique sur le lien « supprimer », le message est bien supprimé comme prévu. On peut rapidement enlever les messages inutiles directement sur le site, sans passer par PhpMyAdmin.

Il reste à ajouter un petit espacement entre les liens modifier et supprimer :

.post a{
  padding-right: 5px;
}

Je pense que cette leçon est terminée, dans la prochaine leçon nous étudierons une autre commande importante pour sélectionner à partir de plusieurs tables : JOIN.