Bonjour, depuis hier j'ai un petit soucis dans mon code.
Je suis actuellement en train de développer mon portfolio. Mon erreur est la suivante :
Sur mon site, je peux poster des "Postes" qui seront soit des articles, soit des créations (projets...). Ces "Postes" peuvent appartenir à une ou plusieurs catégories.
Dans mon administration, j'utilise un Multiple Select qui liste toutes les catégories. Le but était donc de pouvoir ajouter une ou plusieurs catégories à un poste lors de son ajout depuis l'administration.
Mon modèle de données est le suivant :
Il fonctionne très bien, du moins quand je fait des entrées depuis la base de données.
Pour lister les différentes catégories présentes, j'utilise donc un Foreach :
Mon modèle est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <select multiple class="form-control" id="tags" name="tags[]" required> <?php foreach ($getCategories->fetchAll() as $categorieDetails) { echo '<option value="' . (string) $categorieDetails['id'] . '">' . $categorieDetails['tag'] . '</option>'; } ?> </select>
Je récupère l'id du dernier article posté, puis je lui passe l'une des catégories séléctionnés via le Multiple Select.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $insert = $db->prepare('INSERT INTO postes_categories (id_poste, id_categorie) VALUES (:id_last_post, :id_categorie)'); $insert->execute(array( 'id_last_post' => $id_last_post, 'id_categorie' => $id_categorie ));
Pour ce faire, voici mon code :
Mais malheureusement, j'ai une erreur de type : Array to string conversion
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 foreach ($_POST['tags'] as $tagDetails) { $addPosteCategorie = $postes_categories->addPosteCategorie($getLastPostesID->fetch(), $tagDetails); }
L'erreur provient de la ligne à l'intérieur du foreach (le dernier bloc de code).
J'ai regardé sur différents forums mais je ne trouve pas un moyen pour résoudre ce problème.
J’espère que vous parviendrez à m'aider.
Merci par avance.
Partager