Probleme barre de recherhe
- Accueil
- Forum
- Programmation
- PHP
- Probleme barre de recherhe
pirlo95 Le 4 mars 2017 à 17:05 (Édité le 25 janvier 2019 à 17:53)
J'ai mis le meme code que dans le tuto sur "faire une barrde recherche" et lorsque je fais une recherche d'un pseudo,(j'ai modifie le code pour faire une recherche
d'ami) cela m'emmene ver une page blanche...
De plus dans l'url il y a ecrit q= "ce que je recherche"
voici mon code :
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre;charset=utf8','root','');
$utilisateur = $bdd->query('SELECT pseudo FROM membres ORDER BY id DESC');
if(isset($_GET['q']) AND !empty($_GET['q'])) {
  $q = htmlspecialchars($_GET['q']);
  $utilisateur = $bdd->query('SELECT pseudo FROM membres WHERE pseudo LIKE "%'.$q.'%" ORDER BY id DESC');
  if($utilisateur->rowCount() == 0) {
     $utilisateur = $bdd->query('SELECT pseudo FROM membres WHERE CONCAT(pseudo) LIKE "%'.$q.'%" ORDER BY id DESC');
  }
}
?>
<form method="GET">
  <input type="search" name="q" placeholder="Recherche..." />
  <input type="submit" value="Valider" />
</form>
<?php if($utilisateur->rowCount() > 0) { ?>
  <ul>
  <?php while($a = $utilisateur->fetch()) { ?>
     <li><?= $a['pseudo'] ?></li>
  <?php } ?>
  </ul>
<?php } else { ?>
Aucun résultat pour: <?= $q ?>...
<?php } ?>
Merci de votre aide et bonne journée!!
Profil introuvable Le 4 mars 2017 à 19:06 (Édité le 1 janvier 1970 à 01:00)
Je n'ai toujours pas compris pourquoi ce code donne une page blanche mais j'ai plusieurs questions :
1 - Pourquoi donnes-tu une valeur Ă ta variable $utilisateur (ligne 5) alors que tu l'Ă©crase ensuite avec la requĂŞte suivante (ligne 8) ?
$utilisateur = $bdd->query('SELECT pseudo FROM membres WHERE pseudo LIKE "%'.$q.'%" ORDER BY id DESC');
2 - Je ne comprends pas pourquoi tu relance la même requête, à l’exception près que tu crées une concaténation (ligne 10), si ne nombre de résultat est égal à zéro.
3 - En sql, la concaténation à deux valeur (sinon cela ne sert à rien). Dans ta requête ligne 10, il n'y en a qu'une seule. A moins que je me trompe, enlève cette ligne et la condition qui va avec et réessaie.
En espérant avoir pu t'aider, Z Fire
drtyrf Le 10 mars 2017 à 18:33 (Édité le 1 janvier 1970 à 01:00)
Profil introuvable Le 10 mars 2017 à 20:16 (Édité le 10 mars 2017 à 20:16)
<title>Recherche pour <?= $q ?> sur monSite</title>
Ton code fonctionne maintenant ?