2016-04-15 14 views
2

の条件私は会計士のためのディレクトリを作成したい、と私は作成して、のような高度な検索フォームにしたい:ユーザーが入力した場合検索フォーム

ララ、これとは会計士はありません名前私は彼の名前に 'L' 'A' 'R'が含まれていることを会計士に提案したいのですか?

問題は、ユーザーが入力する文字の数がわからないため、SQLクエリを使用してこれを作成する方法です。

+3

ユーザーが検索にヒットするたびにプログラミングの選択肢があり、最初に全文一致を実行します。そのクエリがゼロの行を返した場合、最初の3文字の名前を持つ別のクエリを実行しようとします。 select * from tblここで、名前は '%'です。 – vishwakarma09

答えて

1

ユーザが見つからない場合は、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']; 
    } 
+0

これは私にアイデアを持たせるのに役立ちます、私は4,3,2と1文字で検索するために4ループを追加します、ニース –

+0

しかし、ユーザーによる検索が10文字を超える場合、スクリプトの読み込みに時間がかかることがあります。お力になれて、嬉しいです。 – Charas