He creado un formulario donde el usuario puede buscar en la base de datos, y el resultado depende de cómo el usuario rellene el formulario.
Por ejemplo, supongamos que tengo nombre, dirección, ciudad, estado y campo zip, y el usuario rellena los campos de nombre y ciudad, los resultados reflejan la entrada. Cuando el formulario envía, se muestran todos los registros. para este escribo esto:Buscar base de datos MySQL con múltiples campos en un formulario
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 />";
}
}
?>
Pero en este caso, un usuario puede dejar un campo en blanco.
La codificación aquí no es segura contra los usuarios maliciosos. Lea http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in-php. –