私のウェブサイトを検索しようとしています。メンバー証明書で検索すると、彼の詳細は表示されません。しかし、私のコードで証明書番号1を検索すると、証明書番号1、10、11、12、13、14、15の詳細が表示されます。PHP検索で複数の結果が表示される
単一メンバーの詳細を表示する方法はありますか?あなたは間違ったワイルドカードを使用している
if(isset($_POST['search'])){
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
$query = mysql_query("SELECT * FROM certificate WHERE certificate_no LIKE '%$searchq%' ") or die ("could not search ");
}
$count = mysql_num_rows($query);
if($count==0){
$output = 'There is no search result ';
} else {
while ($row = mysql_fetch_array($query)){
$name =$row['name'];
$certificate_no =$row['certificate_no'];
$y_of_passing =$row['y_of _passing'];
$grade =$row['grade'];
$score =$row['score'];
$output.='<div>Certificate Number : ' .$certificate_no.' <div>Candidate Name : '.$name. '<div>Grade/Score : ' .$grade.' <div>Course Name : '.$score. '<div>Year Of Passing: '.$y_of_passing.'<div>';
echo "<img src ='".$row['photo']."' height='100' width='200' >" ;
}
}
print("$output");
何がcertificate_noはprimerykeyまたはユニークですか? –
mysql_ *関数は推奨されていません。 MySQLiまたはPDOを調べる必要があります。 – Option
*「証明書No:1を検索すると、証明書番号1、10、11,12,13,14,15、...」の詳細が表示されます。* ...まあ、そうです。 'WHERE certificate_no LIKE '%$ searchq%'' - 特定の証明書を使用するには、WHERE certificate_no = $ searchq'を使用します。ただし、バインドされたパラメータを使用してmysqli/pdoに移動します。 mysql_拡張は無効であり、問題を尋ねているようにデータをSQLに補間します。 – CD001