の条件私は会計士のためのディレクトリを作成したい、と私は作成して、のような高度な検索フォームにしたい:ユーザーが入力した場合検索フォーム
:ララ、これとは会計士はありません名前私は彼の名前に 'L' 'A' 'R'が含まれていることを会計士に提案したいのですか?
問題は、ユーザーが入力する文字の数がわからないため、SQLクエリを使用してこれを作成する方法です。
の条件私は会計士のためのディレクトリを作成したい、と私は作成して、のような高度な検索フォームにしたい:ユーザーが入力した場合検索フォーム
:ララ、これとは会計士はありません名前私は彼の名前に 'L' 'A' 'R'が含まれていることを会計士に提案したいのですか?
問題は、ユーザーが入力する文字の数がわからないため、SQLクエリを使用してこれを作成する方法です。
ユーザが見つからない場合は、str_splitを使用して文字列を1文字の配列に分割し、配列をループしてLIKE '%$ string%'を使用してクエリします。
// If user not found
if(!(mysqli_num_rows > 0)) {
$array = str_split($search);
// If search is two separated words, to remove space and reorder array, use this line instead:
// $array = str_split(str_replace(" ", "", $array));
for($i = 0; $i < count($array); $i++) {
$char = $array[$i];
$sql = "SELECT * FROM table WHERE name LIKE '%$char%'";
$result = mysqli_fetch_array(mysqli_query($con, $sql));
echo $result['name'];
}
これは私にアイデアを持たせるのに役立ちます、私は4,3,2と1文字で検索するために4ループを追加します、ニース –
しかし、ユーザーによる検索が10文字を超える場合、スクリプトの読み込みに時間がかかることがあります。お力になれて、嬉しいです。 – Charas
ユーザーが検索にヒットするたびにプログラミングの選択肢があり、最初に全文一致を実行します。そのクエリがゼロの行を返した場合、最初の3文字の名前を持つ別のクエリを実行しようとします。 select * from tblここで、名前は '%'です。 – vishwakarma09