J'ai une fonction qui doit me retourner toutes les lignes correspondantes à la requête
=> je me dis alors qu'il me faut utiliser fetchALL (PDO :: FETCH_ASSOC) afin de recevoir les lignes ET le nom de la colonne
Car le but c'est de remplir un tableau pour présenter les résultats.
SAUF QUE :
Quand j'utilise fetch je n'ai aucun soucis pour afficher une ligne avec les en-têtes mais quand j'utilise fetchAll j'ai un pb de : Notice: Array to string conversion et en plus je n'ai pas les bonnes en-têtes...
Je ne comprends pas et ça m'énerve
Voici la fonction :
// fonction qui permet de faire une requête dans la DB sur le morceau que l'on recherche
function rechercheTab() {
$conn = connectionDB();
$query = 'SELECT * FROM aebersold WHERE titre LIKE "' . $_POST['titre'] . '%" ORDER BY titre';
$stmt = $conn->query($query);
$donnees = $stmt->fetch(PDO::FETCH_ASSOC);
return $donnees;
}
Voici la page d'affichage :
<?php
require_once 'functions.php';
include 'menu.php';
include 'header.php';
echo '<br>';
//Formulaire de recherche des morceaux
echo '
<form action="#" method="post">
<label for="titre">Titre recherché : </label><input type="text" id="titre" name="titre">
<input type="submit" value="Envoyer">
<br><hr>';
// Debut du tableau
echo '<table><thead><tr>';
//On remplit le tableau grâce à la fonction rechercheTab
if (isset($_POST['titre'])) {
$donnees = rechercheTab();
foreach ($donnees as $key => $donnee) {
echo '<th>' . $key . ' </th>'; //j'affiche les en-têtes de ma DB
}
echo '</tr></thead><tbody><tr>';
foreach ($donnees as $key => $donnee) {
echo '<td>' . $donnee . ' </td>'; //je remplis le tableau avec les données de ma DB
}
echo '</tr></tbody></table>';
}
include 'footer.php';
?>
Quelqu'un peut il m'expliquer ce que je ne comprends pas svp Merci