ユーザーがデータベースを検索できるフォームを作成しました。結果はユーザーがフォームに入力する方法によって異なります。
たとえば、名前、住所、市区町村、州、および郵便番号のフィールドがあり、ユーザーが名前と都市のフィールドを入力すると、入力結果が反映されます。フォームが送信されると、すべてのレコードが表示されます。 はこのために私はこれを書く: フォーム内に複数のフィールドを持つMySQLデータベースを検索する
if(isset($_POST['submit'])) {
$sql = mysql_query("SELECT * FROM table WHERE name LIKE '%" . $_POST['name'] . "%'
OR address LIKE '%" . $_POST['address'] . "%'
OR city LIKE '%" . $_POST['city'] . "%'
OR state LIKE '%" . $_POST['state'] . "%'
OR zip LIKE '%" . $_POST['zip'] . "%'");
}
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<tr>
<td>Name:</td>
<td><input type="text" name="name" /></td>
</tr>
<tr>
<td>Address:</td>
<td><input type="text" name="address" /></td>
</tr>
<tr>
<td>City:</td>
<td><input type="text" name="city" /></td>
</tr>
<tr>
<td>State:</td>
<td><input type="text" name="state" /></td>
</tr>
<tr>
<td>Zip:</td>
<td><input type="text" name="zip" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Search" /></td>
</tr>
</form>
</table>
<?php
if(isset($_POST['submit'])) {
while($row = mysql_fetch_array($sql)) {
echo $row['name'] . "<br />";
}
}
?>
しかし、この場合には、ユーザは、フィールドを空白のままにしておくことが
。
を。 http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in-phpを読んでください。 –