2017-03-25 10 views
-1

私はmysqlデータベースからデータを取得する2つの検索ボックスでライブ検索を行っています。送信ボタンを押すと、ユーザーが入力したデータベースの行のデータが表示されます。私の問題は、それはクエリから異なる値を出力するが、2番目の検索ボックスからのみ出力され、なぜ見つけることができないということです。データを取得するmysql php

のjQuery:

は、ここに私のコードです

$(document).ready(function(){ 
    $('#button').on('click', function(){ 
     var smartphone1 = $('#smartphone1').val(); 
     var smartphone2 = $('#smartphone2').val(); 
     if ($.trim(smartphone1) != '' && $.trim(smartphone2) != ''){ 
      $.post('fetchdata.php', {smartphone1: smartphone1, smartphone2: smartphone2}, function(data){ 
       $('#namedata').text(data); 
      }); 
     } 
    }); 
}); 

PHP:

if (isset($_POST['smartphone1']) AND isset($_POST['smartphone2'])) { 
    if (empty($_POST['smartphone1']) AND empty($_POST['smartphone2'])) { 
     exit(); 
    } 

    $recherche = filter_input(INPUT_POST, 'smartphone1', FILTER_SANITIZE_STRING); 
    $recherche = filter_var($recherche, FILTER_SANITIZE_SPECIAL_CHARS); 

    $search = filter_input(INPUT_POST, 'smartphone2', FILTER_SANITIZE_STRING); 
    $search = filter_var($search, FILTER_SANITIZE_SPECIAL_CHARS); 

    require "databasecon.php"; 

    $mysqli = new mysqli($host_name, $user_name, $password, $database); 

    if (!$stmt = $mysqli->prepare("SELECT name , capacityingo , ram , prix , photoquality FROM smartphone WHERE name = ?")) { 

     $error = array 
      (
       'error' => 'The statement could not be prepared' 
      ); 

     echo json_encode($error); 
     exit(); 
    } 

    $stmt->bind_param('s', $recherche); 
    $stmt->bind_param('s', $search); 

    if (!$stmt->execute()) { 
     $error = array 
      (
       'error' => 'The statement could not be executed' 
      ); 

     echo json_encode($error); 
     exit(); 
    } 

    $res = $stmt->get_result(); 
    $datasmartphone1 = array(); 
    $datasmartphone2 = array(); 
    while ($row = $res->fetch_assoc()) 
    { 
     //add each result to an array 
     $datasmartphone1[] = $row; 
     $datasmartphone2[] = $row; 
    } 
    //print the array encoded in JSON 
    echo json_encode($datasmartphone1); 
    echo json_encode($datasmartphone2);  
} 

はあなたの助けをいただき、ありがとうございます。

+0

2つのアレイのための2番目の検索ボックスの値を使用するように変更しなければならないと思いますか?何のために? –

答えて

0

クエリ文字列には1つのパラメータしかなく、最初のフィルタで置き換えてから2番目のパラメータで置き換えます。

"SELECT name, capacityingo, ram, prix, photoquality FROM smartphone WHERE name = ?" 

$stmt->bind_param('s', $recherche); 
$stmt->bind_param('s', $search); 

私はあなたが

"SELECT name, capacityingo, ram, prix, photoquality FROM smartphone WHERE name = ? OR name = ?" 

またはものは何でも同じ結果と

関連する問題