2016-03-09 5 views
-1

Il existe donc un excellent didacticiel sur la création d'un champ de recherche avec autosuggest here. Et cela fonctionne très bien sur ma base de données MySQL Wordpress.Rendre le champ de recherche autosuggest alimenté par PDO avec les données UTF8

Cependant, le problème est avec les caractères japonais ... j'ai ajouté la ligne suivante au PHP: $conn->exec("set names utf8"); qui m'a permis de montrer correctement les résultats japonais, mais la fonction de recherche ne fonctionne pas correctement:
Il vient me montre tous les résultats dans le tableau entier et non le résultat filtré.

Voici mon code complet:

if (isset($_GET['term'])){ 
    $return_arr = array(); 

    try { 
     $conn = new PDO("mysql:host=".DB_SERVER.";port=8889;dbname=".DB_NAME, DB_USER, DB_PASSWORD.""); 
     $conn->exec("set names utf8"); 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

     $stmt = $conn->prepare('SELECT supplier_company FROM wp_teleapo_supplier'); 
     $stmt->execute(array('term' => '%'.$_GET['term'].'%')); 

     while($row = $stmt->fetch()) { 
      $return_arr[] = $row['supplier_company']; 
     } 

    } catch(PDOException $e) { 
     echo 'ERROR: ' . $e->getMessage(); 
    } 


    /* Toss back results as json encoded array. */ 
    echo json_encode($return_arr); 
} 

Répondre

0

Le problème est dans votre instruction SQL, vous n'avez pas where clause

$stmt = $conn->prepare('SELECT supplier_company FROM wp_teleapo_supplier WHERE `term` LIKE ?'); 
$stmt->execute(array('%'.$_GET['term'].'%')); 
+0

Great! Merci d'avoir fait remarquer cela! – mesqueeb