Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/10/2011, 08:45
Avatar de ahaugas
ahaugas
 
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 249
Antigüedad: 12 años, 8 meses
Puntos: 21
Pregunta problema al hacer un filtrado

hola tengo un problema y necesito hacer un filtrado individual de cada campo del formulario ej: si solo se escribe nombre que haga la busqueda con solo el nombre, si lo busca con genero que solo busque genero, si busca año que solo busque año o las tres a la vez o las dos

este es el script
Código PHP:
<?php 
//Este script es OpenSource, desarrollado por VideoCacao
//METODO A USAR: http://www.misitio.com/datos.php?pelicula=Virtuosity&genero=ciencia-ficcion&año=2011&enviar=enviar
//Configuracion de conexion y datos del servidor
require_once("config.php");
//Aqui decimos que no muestre errores
error_reporting(0);
//Aqui decimos que busque por nombre, genero y año
if(isset($_POST['pelicula'])){
        
$sql "SELECT * FROM Peliculas WHERE Nombre='".$_POST['pelicula']."'";
    } 
else if(isset(
$_POST['genero'])){
        
$sql "SELECT * FROM Peliculas WHERE Genero='".$_POST['genero']."'";
    } else {
        
$sql "SELECT * FROM Peliculas WHERE 1=1";
    }
if(isset(
$_POST['anio'])){
        
$sql .= " AND Anio='".$_POST['anio']."'";
    }
$query mysql_query($sql) or die(mysql_error());
?>
<!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" dir="ltr" lang="es-ES">

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Filtrado de datos - php y mysql</title>
<style type="text/css">
#form {
    border:1px solid #990000;
    width:450px;
    margin:auto;
}
#form legend{
    font-weight:bold;
    font-size:12px;
}
#form ol{
    list-style:none;
}
#form ol li{
    padding-bottom:5px;
}
#form ol li label{
    width:120px;
    float:left;
    text-align:left;
}
#form input[type=text] {
    border:1px solid #CCCCCC;
}
#form input.btn {
    padding:3px;
    color:#FFFFFF;
    background-color:#990000;
    border:1px solid #000000;
}
</style>
        </head>
        <body>
<!-- Aqui empieza el formulario de filtrado -->
    <form name="frm" method="post" action="<?php echo $_SERVER['PHP_SELF'?>">
        <fieldset id="form">
            <legend>Filtrado de peliculas</legend>
                <ol>
                        <li><label>Película</label><input type="text" name="pelicula" id="pelicula" /></li>
                    <li><label>Género</label>
                    <select id="genero" name="genero">
                    <option value="1">Accion</option>
                    <option value="2">Ciencia-Ficcion</option></select></li>
                    <li><label>Año</label>
                    <select id="anio" name="anio">
                    <option value="2000">2000</option>
                    <option value="2001">2001</option>
                    <option value="2002">2002</option>
                    <option value="2003">2003</option>
                    <option value="2004">2004</option>
                    <option value="2005">2005</option>
                    <option value="2006">2006</option>
                    <option value="2007">2007</option>
                    <option value="2008">2008</option>
                    <option value="2009">2009</option>
                    <option value="2010">2010</option>
                    <option value="2011">2011</option>
</select></li>
                </ul>
                                    <p align="center"><input type="submit" name="enviar" id="enviar" value="Enviar" /></p>
        </fieldset>
    </form> 
<!-- Aqui termina el formulario de filtrado -->
<p align="center">
<!-- Mostramos los datos obtenidos -->
<table border="1" cellspacing="0" align="center">
  <thead>
    <tr>
      <th>Nombre</th>
      <th>Genero</th>
      <th>Año</th>
    </tr>
  </thead>
<?php while($datos mysql_fetch_assoc($query)) { ?>
<tbody>
    <tr>
      <td><?php echo $datos['Nombre']; ?></td>
      <td><?php echo $datos['Genero']; ?></td>
      <td><?php echo $datos['Anio']; ?></td>
    </tr>
  </tbody>
<?php ?>
</table>
<!-- Mostramos los datos obtenidos y cerramos -->
</p>
</body>
</html>

Última edición por ahaugas; 30/10/2011 a las 08:46 Razón: codigo mal escrito