0
現在私の学校の図書館のウェブサイトを構築しており、複数の結果を返すために検索バーをページに表示する際に問題が発生しています。ここでは、コードは次のようになります。インスタント検索では1つのアイテムのみが返されます
PHP:
<?php
error_reporting(E_ALL);
$cont = mysqli_connect('host','username','password', 'db') or die(mysqli_connect_error());
$output='';
if(isset($_POST['searchVal'])){
$searchkey= $_POST['searchVal'];
$searchkey=preg_replace("#[^0-9a-z]#i", "", $searchkey);
$query = mysqli_query($cont, "SELECT * FROM books WHERE Title LIKE
'%$searchkey%' OR Author LIKE '%$searchkey%' OR ISBN_Other_code_no LIKE
'%$searchkey%' ") or die('couldnotconnnect');
$count = mysqli_num_rows($query);
if($count == 0){
$output="There was no search result!";
}else{
while($row=mysqli_fetch_array($query)){
$fname = $row['Title'];
$lname = $row['Author'];
$pname = $row['ISBN_Other_code_no'];
$output = "$fname $lname $pname </br>";
};
};
};
echo ($output);
?>
JS:
function searchq(){
var searchTxt = $("input[name='search']").val();
$.post("search.php", {searchVal: searchTxt}, function(output){
$("#output").html(output);
});
};
私のHTMLでの投稿のみつの結果、上記のコードは10以上があるはずとき。 SQLテーブル内のすべてのステートメントをループしないようにするコードで誰かがバグを見ることができますか?または、PHPでループを作成する必要がありますか?
ありがとうございました!
データベース接続の詳細などの重要なデータを投稿しないでください。 –
データベースへの資格情報を編集しました - セキュリティリスクの可能性があるので、すぐにパスワード**を変更することをおすすめします**。 – Qirel
実際の問題は、各繰り返しで '$ output'を上書きすることです。代わりに配列を使用するか、配列を使用してください。 $ output = "$ output =" $ fname $ lname $ pname ";' '$出力。=" $ fname $ lname $ pname ";'( '='から '。='への変更に注意してください。 – Qirel