Barre de recherche AJAX/PHP

Résolu
Frenchisme Messages postés 8 Date d'inscription mercredi 21 août 2024 Statut Membre Dernière intervention 27 décembre 2024 - 27 août 2024 à 00:15
jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 - 27 déc. 2024 à 22:54

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.

4 réponses

jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 4 735
27 août 2024 à 09:39

bonjour 

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


0
Frenchisme Messages postés 8 Date d'inscription mercredi 21 août 2024 Statut Membre Dernière intervention 27 décembre 2024
27 août 2024 à 12:36

Bonjour, merci pour ta réponse ! 

Comment je dois faire ? 

0
Frenchisme Messages postés 8 Date d'inscription mercredi 21 août 2024 Statut Membre Dernière intervention 27 décembre 2024
22 nov. 2024 à 21:55

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

Merci

0
jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 4 735
22 nov. 2024 à 22:26

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 mercredi 21 août 2024 Statut Membre Dernière intervention 27 décembre 2024
27 déc. 2024 à 22:09

Bonsoir, 

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

0
jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 4 735
27 déc. 2024 à 22:54

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