Barre de recherche AJAX/PHP

Résolu
Frenchisme Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonsoir,

Je me tourne vers vous aujourd'hui concernant un soucis sur ma barre de recherche AJAX/PHP au niveau de ma requête PHP :

<?php
if(isset($_GET['user'])){
$user = $_GET['user'];

$query = $db->prepare("SELECT * FROM `playlist` WHERE artiste LIKE ? LIMIT 10", array("%$user%"));
	
$query->execute(array("%$user%"));


    $sql = $query->fetchALL();

    foreach($sql as $r){
      ?>

<?= $r['artiste'] ?> - <?= $r['titre'] ?><br> 
<?php
}
} 
?>

Ce code fonctionne, il me retourne bien les résultats demandés lorsque je recherche un artiste. Sauf que je souhaiterais que ma barre recherche aussi les titres portant le nom recherché. J'ai donc naturellement ajouté OR titre LIKE ? à la suite de mon premier artiste LIKE ?. Sauf que là plus rien ne fonctionne.

Je souhaiterais savoir si j'ai bien écrit mon code ou pas ... En bref je souhaiterais que la saisie du champ de recherche, cherche les infos dans la colonne artiste et titre.

Merci par avance pour votre aide.

A voir également:

4 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

bonjour 

et dans ton execute, tu as bien double ta variable également ?


0
Frenchisme Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour, merci pour ta réponse ! 

Comment je dois faire ? 

0
Frenchisme Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 

Bonsoir, je reviens vers toi car je suis toujours bloqué sur mon problème...

Merci

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

Bonjour 

commence par appliquer ceci 

https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

et reviens nous montrer ton code modifié si ton souci persiste.

0
Frenchisme Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 

Bonsoir, 

Désolé mais j'ai essayé de comprendre ton lien mais je n'y arrive pas ^^

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

Qu'est ce que tu ne comprends pas au juste ??

As tu modifié ton code de connexion à la bdd comme dans l'exemple présent dans le lien afin d'afficher les erreurs PDO ?

As tu modifié ton code (celui que tu as posté dans ton premier message) afin de placer l'exécution de ta requête dans un bloc try/catch ? (comme dans l'exemple qui se trouve dans le lien que je t'ai donné ? )

As tu activé l'affichage des erreurs PHP (comme expliqué dans le lien que je t'ai donné ) ?

bref.. qu'as tu déjà changé dans ton code pour tenir compte des informations présentes dans le lien que je t'ai donné ?? ( il faudrait poster ton code ACTUEL qu'on puisse voir ce que tu as essayé de faire .)

.. enfin bon...

En gros, ton code devrait ressembler à un truc du genre :

<?php
//--------------------------------
//Affichage des erreurs PHP
//--------------------------------
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);


//--------------------------------
// connexion à la bdd ?
//--------------------------------
// ??


//--------------------------------
//récupération PROPRE des données transmises en GET
//--------------------------------
$user = !empty($_GET['user']) ? trim($_GET['user']) : null;


//--------------------------------
// début du traitement
//--------------------------------
if($user)){
  //préparation de la requête et des variables
  $sql = "SELECT * FROM `playlist` WHERE artiste LIKE ? OR titre LIKE ? LIMIT 10";
  $datas = array($user,$user);

  //Execution de la requete
  try{
    $requete = $db -> prepare($sql) ;
    $requete->execute($datas) ;
    //On récupère le résultat de la requête dans un array
    $result = $requete->fetchAll();
  }catch(Exception $e){
    // en cas d'erreur :
     echo " Erreur ! ".$e->getMessage();
     echo " Les datas : " ;
    print_r($datas);
  }


  foreach($result as $r){
    echo $r['artiste'] . " - " . $r['titre'] ."<br>"; 
  }
} 
?>

Au passage, vu que tu parles d'ajax, j'espère que tu sais comment regarder dans la console de ton navigateur ce que retourne l'appel à ton script.

Au cas où, n'hésites pas à lire ceci : (descend jusqu'à la section : Débuggage de l'ajax )

https://forums.commentcamarche.net/forum/affich-37772066-php-jquery-debugage-ajax?v8th5MQcMDx5M3B0rKm5-neTZwY_nmCtrBX4svMXzV8


0