Saludos foreros!
Tengo una pequeña duda que espero puedan ayudarme a solucionar.
Os muestro el código, y al final del todo he puesto tres líneas de comentario para que sepan donde está mi duda.
La página es un filtro que de primeras muestra todos los resultados, si introduces algún valor y le das al botón filtrar, filtra la lista. hasta ahí todo correcto.
La cuestión es si clicas en el botón filtrar sin haber rellenado los campos da un error.
La idea sería que al clicar sin haber rellenado ningún campo no hiciera nada, o si tuviera que hacer algo que volviese a cargar la misma página como al principio.
Gracias por vuestra ayuda!
Código PHP:
Ver original<?php
$link = mysql_connect('localhost', 'root','') or
die("Error, no se ha conectado B.D."); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<form action="" name="form1" method="post">
Nombre:<input type="text" name="nombre" autocomplete="off" />
<br />
Población<input type="text" name="poblacion" autocomplete="off"/>
<br />
Provincia<input type="text" name="provincia" autocomplete="off"/>
<br />
CIF<input type="text" name="cif" autocomplete="off" />
<br />
<br />
<?php
function generaClientes()
{
$link = mysql_connect('localhost', 'root','') or
die("Error, no se ha conectado B.D.");
$nombre = $_POST['nombre'];
$provincia = $_POST['provincia'];
$poblacion = $_POST['poblacion'];
$cif = $_POST['cif'];
$sql= " SELECT * FROM tabla WHERE "; //Empezar a crear la consulta:
$sql .= " Nombre LIKE '%$nombre%' AND Poblacion LIKE '%$poblacion%' AND Provincia LIKE '%$provincia%' AND CIF LIKE '%$cif%'" ;
}
$sql .= " Nombre LIKE '%$nombre%' AND Poblacion LIKE '%$poblacion%' AND CIF LIKE '%$cif%'";
}
$sql .= " Nombre LIKE '%$nombre%' AND CIF LIKE '%$cif%' AND Provincia LIKE '%$provincia%'";
}
else if ( !empty($nombre) && !empty ($provincia) ) { $sql .= " Nombre LIKE '%$nombre%' AND Provincia LIKE '%$provincia%'";
}
$sql .= " Nombre LIKE '%$nombre%' AND CIF LIKE '%$cif%'";
}
else if ( !empty($nombre) && !empty ($poblacion) ) { $sql .= " Nombre LIKE '%$nombre%' AND Poblacion LIKE '%$poblacion%'";
}
else if ( !empty($nombre) ) { $sql .= " Nombre LIKE '%$nombre%'";
}
$sql .= " Poblacion LIKE '%$poblacion%' AND Provincia LIKE '%$provincia%' AND CIF LIKE '%$cif%'" ;
}
else if ( !empty($poblacion) && !empty ($provincia) ) { $sql .= " Poblacion LIKE '%$poblacion%' AND Provincia LIKE '%$provincia%'";
}
$sql .= " Poblacion LIKE '%$poblacion%' AND CIF LIKE '%$cif%'";
}
else if ( !empty($poblacion)) { $sql .= " Poblacion LIKE '%$poblacion%'";
}
$sql .= " CIF LIKE '%$cif%' AND Provincia LIKE '%$provincia%'";
}
else if ( !empty ($provincia) ) { $sql .= " Provincia LIKE '%$provincia%'";
}
else if ( !empty($cif) ) { $sql .= " CIF LIKE '%$cif%'";
}
}
$sql .= "ORDER BY Nombre ASC";
$consulta = mysql_query ($sql) ; //Hacer la consulta. ?>
<select name='clientes' size="5px">
<?php
{?>
<option value="<?php echo $registro['num_cliente']; ?>"><?php echo $registro['Nombre']," ",$registro['Direccion']," ",$registro['Poblacion']," ", $registro['Provincia']; ?></option>
<?php
}
?>
</select>
<?php
}
?>
<input type="submit" value="Filtrar" name="filtrar" />
</form>
<br />
<br />
<?php
if (!isset($_POST['filtrar'])){
$sql= " SELECT * FROM tabla ORDER BY Nombre ASC";
$consulta = mysql_query ($sql) ; //Hacer la consulta. ?>
<select name='clientes' size="5px">
<?php
{?>
<option value="<?php echo $registro['num_cliente']; ?>"><?php echo $registro['Nombre']," ",$registro['Direccion']," ",$registro['Poblacion']," ", $registro['Provincia']; ?></option>
<?php
}
?>
</select>
<?php
}}
else
{
if (isset($_POST['filtrar'])) {
generaClientes();
}
else
{
/////////////////////////////
/////////////////////////////
/////////////////////////////
}}?>
</body>
</html>