0
でLIKEを使用して0行を返すんなぜ私は私のjsに私のクエリはPHPのPDO
の下に、このPHPの関数を呼び出す$("#search").keyup(function(){
var searchText = $('#search').val();
var searchBy = $('#searchBy').val();
var newObj = { action: "search",
searchText: searchText,
searchBy: searchBy
}
$.ajax({
method: "POST",
url:"../_tasklogger/classes/tasklog-functions.php", //the page containing php script
dataType: 'html',
data: newObj,
success: function(response){
$("#taskTable").html(response);
},
error: function (req, status, err) {
console.log('Something went wrong', status, err, req);
}
});
});
このAJAXからkeyup検索イベントがあります
$searchText = $_POST['searchText'];
$searchBy = $_POST['searchBy'];
$limit = 5;
$sql = "SELECT *
FROM tasks
WHERE userId = :userid and :searchby LIKE :searchtext
LIMIT :datalimit";
$stmt = $db_con->prepare($sql);
$searchText = $searchText."%";
$stmt->bindParam(":userid", $_SESSION['userid']);
$stmt->bindParam(":searchby", $searchBy);
$stmt->bindParam(":searchtext", $searchText, PDO::PARAM_STR);
$stmt->bindParam(":datalimit", $limit, PDO::PARAM_INT);
if($stmt->execute()){
echo'<tr>
<th>Date</th>
<th>Task Name</th>
<th>Duration</th>
<th>Start Time</th>
<th>End Time</th>
<th colspan="2" style="text-align:center;">Action</th>
</tr>';
while ($row = $stmt->fetch()){
echo '<tr>';
echo '<td>'.$row['taskDate'].'</td>';
echo '<td>'.$row['taskName'].'</td>';
echo '<td>'.$row['duration'].'</td>';
echo '<td>'.$row['startTime'].'</td>';
echo '<td>'.$row['endTime'].'</td>';
echo '<td>
<button id="editbtn" value="'.$row['taskId'].'" class="btn waves-effect waves-light orange lighten-1 hoverable">Edit</button>
</td>';
echo '<td>
<button id="deletebtn" value="'.$row['taskId'].'" class="btn waves-effect waves-light red lighten-1 hoverable">Delete</button>
</td>';
echo '</tr>';
}
}
しかし、それはありませんが何も返さない。私はデータベース内のクエリをテストし、正常に動作します。私は問題を引き起こしている事が私の$searchText
変数にあると思う。
私を助けることができる誰もありがとう!文のような
'$ searchText'はどこから来たのですか?このPHPコードはループで実行されていますか?クエリを実行する直前の値は何ですか? PDOエラー[エラー処理](http://php.net/manual/en/pdo.error-handling.php)を有効にしてください。エラーが出力されているかどうかをAJAXの戻り値で確認しましたか? – Mike
申し訳ありません、私は '$ searchText'が出てくるPOST値を追加しませんでした。いいえ、ループで実行されるのではなく、単純なajaxリクエスト(keyupイベント)によって呼び出されます。はい、私はPDOエラー処理を有効にしました。私は戻り値をチェックしましたが、奇妙なことに何もエラーを出力しないか、エラーを見逃しているに違いありません。 –
'$ searchText'の値は何ですか? HTTPレスポンスコードとは何ですか? – Mike