Problème avec rowCount
- Accueil
- Forum
- Programmation
- PHP
- Problème avec rowCount
TheMexsios Le 5 juin 2017 à 16:30 (Édité le 25 janvier 2019 à 17:53)
Voici ce qu'il y a a la ligne 10:
if($articles->rowCount() == 0) {
(dsl si je suis un galérien ???? )
Pouvez vous me dire pourquoi cela affiche ce message d'erreur ?
TheOldNoob Le 5 juin 2017 à 17:24 (Édité le 1 janvier 1970 à 01:00)
montre nous l'ensemble de ton code
TheMexsios Le 5 juin 2017 à 19:16 (Édité le 1 janvier 1970 à 01:00)
1 <meta charset="utf-8" />
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=u532172745_free;charset=utf8','u532172745_damie','Db85012345');
5
$articles = $bdd->query('SELECT titre FROM articles ORDER BY id DESC');
if(isset($_GET['q']) AND !empty($_GET['q'])) {
$q = htmlspecialchars($_GET['q']);
$articles = $bdd->query('SELECT titre FROM articles WHERE titre LIKE "%'.$q.'%" ORDER BY id DESC');
10 if($articles->rowCount() == 0) {
$articles = $bdd->query('SELECT titre FROM articles WHERE CONCAT(titre, contenu) LIKE "%'.$q.'%" ORDER BY id DESC');
}
}
?>
15 <form method="GET">
<input type="search" name="q" placeholder="Recherche..." />
<input type="submit" value="Valider" />
</form>
<?php if($articles->rowCount() > 0) { ?>
20 <ul>
<?php while($a = $articles->fetch()) { ?>
<li><?= $a['titre'] ?></li>
<?php } ?>
</ul>
25 <?php } else { ?>
Aucun résultat pour: <?= $q ?>...
<?php } ?>
Et voici l'erreur que cela m'affiche:
Fatal error: Call to a member function rowCount() on boolean in /home/u532172745/public_html/Free-Music-Copyright/core/barre de recherche.php on line 19
et de temps en temps j'ai la meme erreur mais a la ligne 10.
TheOldNoob Le 5 juin 2017 à 20:34 (Édité le 1 janvier 1970 à 01:00)
TheMexsios Le 5 juin 2017 à 21:19 (Édité le 1 janvier 1970 à 01:00)
TheOldNoob Le 5 juin 2017 à 21:36 (Édité le 1 janvier 1970 à 01:00)
Je viens de regardé mon code pour mes recherches et j'utilise une requete prepare c'est pour ça. Du coup, j'ai pas lu la totalité de ton code ^^
Je te met mon code, que j'ai utilisé pour une recherche sur le site d'un resto
if(!empty($_GET) && isset($_GET['search']) && !empty($_GET['search'])) { // Si recherche on affiche le résultat // on recherche les paramètres
$resultatSearch = trim(strip_tags($_GET['search']));
//var_dump($resultatSearch);
$res = $pdo->prepare('SELECT nickname, title, content, link, date_publish FROM users RIGHT JOIN recipes ON users.id = recipes.id_user WHERE (title LIKE :maRecherche) OR (content LIKE :maRecherche) ORDER BY date_publish ASC');
$res->bindValue(':maRecherche', '%'.$resultatSearch.'%');
$res->execute();
$recipes = $res->fetchAll(PDO::FETCH_ASSOC);
if(empty($recipes)){
$error = 'Aucun résultat à votre recherche !';
}
$resultatSearchReplace = '<span style="background:yellow">'.$resultatSearch.'</span>';
$resultatSearchRegex = '/'.$resultatSearch.'/';
}
else if(isset($_GET['id']) && !empty($_GET['id'])) { /*Si on veux voir une recette en particulier */
$idRecipe = $_GET['id'];
if(!is_numeric($idRecipe)){
$error = 'Aucun résultat ne correspond !';
}
else {
$res = $pdo->prepare('SELECT nickname, title, content, link, date_publish FROM users RIGHT JOIN recipes ON users.id = recipes.id_user WHERE recipes.id = :idRecipe');
$res->bindValue(':idRecipe', intval($idRecipe), PDO::PARAM_INT);
if($res->execute()) {
$recette = $res->fetch(PDO::FETCH_ASSOC);
$viewRecipe = true;
//Si aucune recette n'a été trouvée
if(empty($recette)) {
$error = 'Aucun résultat ne correspond !';
}
} else {
die(var_dump($res->errorInfo()));
}
}
}
/******************************* AFFICHER TOUTES LES RECETTES AVEC AUTEUR ***********************/
else { // sinon on liste toutes les recettes
$res = $pdo->prepare('SELECT nickname, title, content, link, date_publish FROM users RIGHT JOIN recipes ON users.id = recipes.id_user ORDER BY date_publish ASC');
$res->execute();
// Retourne toutes les entrées de la table "recipe" sous forme de array()
$recipes = $res->fetchAll(PDO::FETCH_ASSOC);
}
TheMexsios Le 5 juin 2017 à 21:44 (Édité le 1 janvier 1970 à 01:00)
ViverticProg Le 11 juin 2017 à 22:02 (Édité le 1 janvier 1970 à 01:00)
je sais pas si tu as trouvé la solution mais si ce n'est pas le cas essaye de mettre ton rowCount() dans une variable que tu définis juste au dessus peu être que ça te réglera ton erreur.
;D
Balatharas Le 13 juin 2017 à 18:04 (Édité le 1 janvier 1970 à 01:00)
Le problème vient de la variable $articles
x_codeur Le 20 juillet 2023 à 17:19 (Édité le 1 janvier 1970 à 01:00)
@ViverticProg puis-je te demander qu'est ce que tu entend par l'erreur vient de $articles. Et comment le resoudre
fuxeur Le 22 juillet 2023 à 18:34 (Édité le 1 janvier 1970 à 01:00)
euh @themexsios t'as literalement donner ta base de donnes dans "mysql:host=127.0.0.1;dbname=u532172745_free;charset=utf8','u532172745_damie','Db85012345'"