2017-01-27 6 views
1

私は約200万行と60の列を持つ1つのテーブルだけのデータベースを持っています。 名前、国、州、姓、ドメインなどの複数の検索フィルタを使用してPHPアプリケーションを作成しました。このフィルタは結果をフィルタリングしてHTMLテーブルに表示します。単一のテキストフィールドに複数のキーワードを使用してmysql dbカラムを検索するにはどうすればよいですか?

しかし問題は、すべてのテキストフィールドが1つの入力のみを受け入れていることです。私はカンマで区切られたすべてのテキストフィールドに複数の入力を与えたい。

例: を検索すると、名前:Harry ジョブ:marketing 結果が表示されます。 しかし私は解決策が欲しい 市:ムンバイ 職業:marketing、Webdesigners、QA。 (複数の入力)

Screenshot

コード:

PHP/MySQLのクエリのコード

<?php 
$res = false; 

if(isset($_REQUEST['submit'])){ 
    $FirstName=$_POST['FirstName']; 
    $LastName=$_POST['LastName']; 
    $Function=$_POST['Function']; 
    $State=$_POST['State']; 
    $Country =$_POST['Country']; 
    $Website =$_POST['Website']; 
    $sql=" SELECT * FROM hz WHERE FirstName like '%".$FirstName."%' AND LastName LIKE '%".$LastName."%' AND Function LIKE '%".$Function."%' AND State LIKE '%".$State."%' AND Country LIKE '%".$Country."%' AND Website LIKE '%".$Website."%'"; 
    $q=mysqli_query($con, $sql); 
} 
else{ 
    $res = true; 
} 
?> 

PHPの検索フォーム:

<form method="post" class="search"> 
<table width="200"> 
<td> 
    <tr><input class="form__input" type="search" name="FirstName" placeholder="First Name" value="<?php if(isset($FirstName)) echo $FirstName;?>" /></tr> 
    <tr><input class="form__input" type="search" name="LastName" placeholder="Last name" value="<?php if(isset($LastName)) echo $LastName;?>" /></tr><BR> 
    <tr><input class="form__input" type="search" name="Function" placeholder="Function" value="<?php if(isset($Function)) echo $Function;?>" /></tr><BR> 
    <tr><input class="form__input" type="search" name="State" placeholder="State" value="<?php if(isset($State)) echo $State;?>" /></tr><BR> 
    <tr><input class="form__input" type="search" name="Country" placeholder="Country" value="<?php if(isset($Country)) echo $Country;?>" /></tr><BR> 
    <tr><input class="form__input" type="search" name="Website" placeholder="Website" value="<?php if(isset($Website)) echo $Website;?>" /></tr><BR>  
    <tr><input type="submit" name="submit" value=" Search " class="button"/></tr> 
</td> 
</table> 

PS:

$con = mysqli_connect("host","user","password", "databasename"); 

私は使用のような提案がforeachのなど、機能を爆発ませんが、このコードでそれを実装する方法は考えました。 どうすればよいですか?

+0

あなたはマニュアルを見てきました[ '')(爆発](のhttp:// PHP。 net/manual/en/function.explode.php)と['foreach()'](http://php.net/manual/en/control-structures.foreach.php)?彼らはかなりストレートです。それを読んで試してみてください。 –

+0

あなたが現在いる間、あなたの現在のコードが広く公開されているので、['Prepared Statements'](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)も読むべきです。 ['SQL Injection attacks'](https://en.wikipedia.org/wiki/SQL_injection)は非常に悪いです。 –

+0

それは?さて、これは私の最初のPHPプロジェクトであり、私は吸う! – user3382310

答えて

関連する問題