Probleme avec php dans la creation et gestion de tableau
enfant_meme
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'utilise le code
$livres = array(); $livresAjoutes = array(); // Tableau auxiliaire pour suivre les titres déjà ajoutés while ($row = $result->fetch_assoc()) { $titre = $row['titre']; // Vérifier si le livre existe en double $doubleStmt = $conn->prepare("SELECT * FROM livres WHERE titre = ?"); $doubleStmt->bind_param("s", $titre); $doubleStmt->execute(); $doubleResult = $doubleStmt->get_result(); // Vérifier s'il y a plusieurs exemplaires du livre if ($doubleResult->num_rows >= 1) { // Récupérer les informations du premier exemplaire $firstRow = $doubleResult->fetch_assoc(); $id = $firstRow['id']; $auteur = $firstRow['auteur']; $annee_publication = $firstRow['annee_publication']; // Récupérer tous les commentaires pour les exemplaires en double $commentaires = array(); do { $commentaires[] = $firstRow['description_avis']; } while ($firstRow = $doubleResult->fetch_assoc()); // Vérifier si le titre du livre a déjà été ajouté if (!in_array($titre, $livresAjoutes)) { // Ajouter le livre au tableau des livres avec les commentaires $livres[$titre] = array( 'id' => $id, 'auteur' => $auteur, 'annee_publication' => $annee_publication, 'commentaires' => $commentaires ); $livresAjoutes[] = $titre; // Ajouter le titre à la liste des titres ajoutés } } else { // Vérifier si le titre du livre a déjà été ajouté if (!in_array($titre, $livresAjoutes)) { // Le livre n'est pas en double, ajouter simplement les informations au tableau des livres $livres[$titre] = array( 'id' => $row['id'], 'auteur' => $row['auteur'], 'annee_publication' => $row['annee_publication'], 'commentaires' => array($row['description_avis']) ); $livresAjoutes[] = $titre; // Ajouter le titre à la liste des titres ajoutés } } } // Afficher les résultats de la recherche if (!empty($livres)) { echo "<h2>Résultats de la recherche :</h2>"; echo "<table>"; echo "<tr><th>Titre</th><th>Auteur</th><th>Année de publication</th><th>Description/Avis</th><th>Détails</th></tr>"; foreach ($livres as $titre => $livre) { echo "<tr>"; echo "<td>" . $titre . "</td>"; echo "<td>" . $livre['auteur'] . "</td>"; echo "<td>" . $livre['annee_publication'] . "</td>"; echo "<td> <ul>"; // Afficher les commentaires foreach ($livre['commentaires'] as $commentaire) { echo "<li>".$commentaire . "</li>"; } echo "</ul></td>"; echo "<td><a href='/detail/" . $livre['id'] . "'>Voir plus</a></td>"; echo "</tr>"; } echo "</table>"; } else { echo "Aucun résultat trouvé."; } // Fermer la connexion à la base de données $conn->close(); }
pour mon site https://livrelu.000webhostapp.com/recherche mais il genere l'erreur suivant si le livre est present 3 fois ou plus dans la base de donné :
comment l'eviter?
Windows / Chrome 116.0.0.0
A voir également:
- Probleme avec php dans la creation et gestion de tableau
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Creation de compte google - Guide
- Creation de site web - Guide
1 réponse
Bonjour,
Quelle erreur ? Je n'en vois pas sur ta capture écran ni sur le lien que tu donnes...
Si c'est l'affichage de "plusieurs" fois le titre dans le tableau... il faudrait qu'on voit le début du code ...
A noter que, tu pourrais déjà t'assurer que ta requête SQL retourne le résultat souhaité ... ( et pour éviter les "doublons", tu peux utiliser du GROUP BY )