Bonjour,
Après avoir consulté la FAQ du site internet et tenté à maintes reprises de résoudre l’erreur PHP, je n’y parviens pas. J’ai pu lire que l’erreur fetch était souvent du à une mauvaise orthographe des noms des colonnes de la BDD. J’ai vérifié le nom des colonnes de ma base SQL et celles-ci sont bien orthographiées dans mon code.
Pouvez-vous svp m’éclairer à ce sujet ? Mon erreur est la suivante :
Fatal error: Uncaught Error: Call to a member function fetch() on null in /htdocs/sortiesdumetro.fr/search.php:44 Stack trace: #0 {main} thrown in /htdocs/sortiesdumetro.fr/search.php on line 44
Et voici mon code :
<form class="search" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<label for="query"></label>
<input type="text" name="query" placeholder="Rechercher une station..." id="query" />
<button type="submit"><i class="fa fa-search"></i></button>
</form>
<?php echo $resultats; ?>
<?php
// Traitement de la requête
if(isset($_POST['query']) && !empty($_POST['query'])) {
$query = iconv("UTF-8", "ASCII//TRANSLIT", $_POST['query']);
$query = str_replace("-", " ", "$query");
$query = str_replace("'", " ", "$query");
$query = trim($query);
$sql = "SELECT id, page_content, page_title AS title FROM pages WHERE page_title LIKE ? OR page_content LIKE ?";
// Connexion à la base de données
try {
$db = new PDO('mysql:host=xxx;dbname=xxx', 'xxx', 'xxx');
}
catch(PDOException $e) {
die('Erreur : '.$e->getMessage());
}
$req = $db->prepare($sql);
$req->execute(array('%'.$query.'%', '%'.$query.'%'));
$count = $req->rowCount();
}
if($count == "0"){
echo "Aucun résultat ne correspond à votre recherche pour <b>$query</b><hr/>";
}
if($count == "1"){
echo "$count résultat trouvé pour <b>$query</b><hr/>";
}
if($count > "1"){
echo "$count résultats trouvés pour <b>$query</b><hr/>";
}
while($data = $req->fetch(PDO::FETCH_OBJ))
{
echo '<h3><a href="https://www.sortiesdumetro.fr/'.$data->page_content.'"></li>'.$data->title.'</a></h3><br/>';
}
?>
Merci beaucoup pour le temps que vous passerez à m’aider !
+0
-0