Bonjour tout le monde, j'ai essayé de faire le tuto " Créer un portfolio de A à Z 3/5", mais je bloque à 18:10 où il faut spécifier l'id de la catégorie pour la supprimer.

category.php

<?php
include('../lib/includes.php');
include('../partials/admin_header.php');

/**
* SUPPRESSION
**/
if(isset($_GET'delete'])){
    checkCsrf();
    $id = $db->quote($_GET'delete']);
    $db->query('DELETE FROM categories WHERE id=$id');

    setFlash('La catégorie a bien été supprimée');
}
/**
*   CATEGORIES
**/
$select = $db->query('SELECT id, name, slug FROM categories');
$categories = $select->fetchAll();
?>
<h1>Les catégories :</h1>
<table class="tablet table-striped">
    <thead>
        <tr>
            <th>Id</th>
            <th>Nom</th>
            <th>Actions</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach($categories as $category): ?>
        <tr>
            <td><?php echo $category'id']; ?></td>
            <td><?php echo $category'name']; ?></td>
            <td>
                <a href="category_edit.php?id=<?php echo $category'id']; ?>" class="btn btn-default">Edit</a>
                <a href="?delete=<?php echo $category'id'];?>&<?php echo csrf(); ?>" class="btn btn-error" onclick="return confirm('Sur de sur ?');">Supprimer</a>
            </td>
        </tr>
        <?php endforeach; ?>
    </tbody>
</table>
<?php include('../partials/footer.php'); ?>

Quand j'essaie de supprimer une catégorie, il me sort :
"Warning: PDO::query() [pdo.query]: SQLSTATE[42S22]: Column not found: 1054 Champ '$id' inconnu dans where clause in C:\Program Files (x86)\EasyPHP-5.3.9\www\portfolio\admin\category.php on line 12"

4 réponses


Benjamin Derepas
Réponse acceptée

Quelle est la structure de ta table catégorie ?
Au passage, tu as mal concaténné ta requête :

query("DELETE FROM category WHERE id = $id");

ou

query('DELETE FROM category WHERE id = '.$id.' ');

Je te conseil la première version, ou aller passer par les requêtes préparées.

Quel est ton problème ? Qu'est ce que tu ne comprends pas ? Quelle erreur as tu ?

Dianos
Auteur

Excuse-moi, j'ai me suis emmêlé les pinceaux en postant le sujet haha. x)

Quand j'essaie de supprimer une catégorie, il me sort :
"Warning: PDO::query() [pdo.query]: SQLSTATE[42S22]: Column not found: 1054 Champ '$id' inconnu dans where clause in C:\Program Files (x86)\EasyPHP-5.3.9\www\portfolio\admin\category.php on line 12"

Dianos
Auteur

Ah merci, ça marche ! Ca devait être à cause de la concaténation.
Merci beaucoup ! :)