Hola a todos:
Lo primero que he de decir es que hace poco que me he metido en el fascinante mundo del php y del mysql, por lo que muchas cosas me suenan a chino, aunque poco a poco voy entendiendo algo, a traves de libros, foros, y dar veinte mil vueltas.
El tema es que he creado un formulario para que me devuelva datos de una base de datos, dependiendo si selecciono uno o varios campos de consulta, tanto tipo select como text.
Copiando código de aki y de allá conseguí que me devuelva resultados, pero tengo problemas con los campos text, ya que estos campos me devuelven resultado si el campo coincide exactamente con el campo de búsqueda, ejemplo, si en el campo de busqueda pongo "casa" solo me devuelve resultado si en el campo de la base de datos solo pone "casa" si pone "casa de campo" lo ignora y no me devuelve nada.
He dado mil vueltas y no consido dar con la solución, os estaria muy agradecido si alguien me pudiera ayudar.
Un saludo.
Este es el código del archivo que procesa el formulario de consulta.
<?php
$link=mysql_connect("localhost", "root", "");
mysql_select_db("bd",$link) OR DIE ("Error: Imposible Conectar");
$año = (!empty($_POST["año"])
? " año='".trim($_POST["año"])."'" : "");
$departamento = (!empty($_POST["departamento"])
? (!empty($año)
? " AND departamento='".trim($_POST["departamento"])."'" : " departamento='".trim($_POST["departamento"])."'") : "");
$denominacion = (!empty($_POST[$denominacion])
? (!empty($año) || !empty($departamento)
? " AND denominacion='".trim($_POST["denominacion"])."'" : " denominacion='".trim($_POST["denominacion"])."'") : "");
$documento = (!empty($_POST["documento"])
? (!empty($año) || !empty($departamento) || !empty($denominacion)
? " AND documento='".trim($_POST["documento"])."'" : " documento='".trim($_POST["documento"])."'") : "");
$expediente = (!empty($_POST["expediente"])
? (!empty($año) || !empty($departamento) || !empty($denominacion) || !empty($expediente)
? " AND expediente='".trim($_POST["expediente"])."'" : " expediente='".trim($_POST["expediente"])."'") : "");
$where = (!empty($año) || !empty($departamento) || !empty($denominacion) || !empty($documento) || !empty($expediente)
? " WHERE " : "");
$s = "SELECT * FROM informes "
. $where
. $año
. $departamento
. $denominacion
. $documento
. $expediente;
$query = mysql_query($s) or die(mysql_error());
$num_informes = mysql_num_rows($query);
?>
<center>
<TABLE BGCOLOR="white" BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD width="120"> <B>INFORME</B></TD>
<TD width="47"> <B>AÑO</B> </TD>
<TD width="135"> <B>DEPARTAMENTO</B> </TD>
<TD width="212"> <B>DENOMINACION</B> </TD>
<TD width="121"> <B>FECHA</B> </TD>
<TD width=107> <B>DOCUMENTO</B> </TD>
<TD width="84"> <B>EXPEDIENTE</B> </TD>
</TR>
</center>
<?php
while($row = mysql_fetch_array($query)){
echo '<tr width="100%">';
echo '<td>' . stripslashes($row['id_informe']).'</td>';
echo '<td>' . stripslashes($row['año']).'</td>';
echo '<td>' . stripslashes($row['departamento']).'</td>';
echo '<td>' . stripslashes($row['denominacion']).'</td>';
echo '<td>' . stripslashes($row['fecha']).'</td>';
echo '<td>' . stripslashes($row['documento']).'</td>';
echo '<td>' . stripslashes($row['expediente']).'</td>';
echo '</tr>';
}
?>
<p>Informes: <?php echo $num_informes; ?></p>
</TABLE>