Probleme avec php dans la creation et gestion de tableau
enfant_meme
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
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 site web - Guide
- Creation de compte google - 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 )
