私は約200万行と60の列を持つ1つのテーブルだけのデータベースを持っています。 名前、国、州、姓、ドメインなどの複数の検索フィルタを使用してPHPアプリケーションを作成しました。このフィルタは結果をフィルタリングしてHTMLテーブルに表示します。単一のテキストフィールドに複数のキーワードを使用してmysql dbカラムを検索するにはどうすればよいですか?
しかし問題は、すべてのテキストフィールドが1つの入力のみを受け入れていることです。私はカンマで区切られたすべてのテキストフィールドに複数の入力を与えたい。
例: を検索すると、名前:Harry ジョブ:marketing 結果が表示されます。 しかし私は解決策が欲しい 市:ムンバイ 職業:marketing、Webdesigners、QA。 (複数の入力)
コード:
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のなど、機能を爆発ませんが、このコードでそれを実装する方法は考えました。 どうすればよいですか?
あなたはマニュアルを見てきました[ '')(爆発](のhttp:// PHP。 net/manual/en/function.explode.php)と['foreach()'](http://php.net/manual/en/control-structures.foreach.php)?彼らはかなりストレートです。それを読んで試してみてください。 –
あなたが現在いる間、あなたの現在のコードが広く公開されているので、['Prepared Statements'](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)も読むべきです。 ['SQL Injection attacks'](https://en.wikipedia.org/wiki/SQL_injection)は非常に悪いです。 –
それは?さて、これは私の最初のPHPプロジェクトであり、私は吸う! – user3382310