Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/04/2011, 02:16
tanatos_neon
 
Fecha de Ingreso: enero-2010
Mensajes: 63
Antigüedad: 15 años
Puntos: 7
Problema busqueda de valores SQL - PHP

Hola gente.

Despues de 3 dias buscando por todo el mundo digital y sin encontrar nada de nada termino remitiendome a vosotros.

Resulta que tengo una BBDD con 8 celdas
ID, MARCA, MODELO, ANO, CATEGORIA, COPYRIGHT, OTROS, OTRAS
Grabo en ellas sin problema y todo lo que necesito.

El problema esta a la hora de buscar algo en ellas.
lo que busco es que.
1º Selecciono la categoria
2º Dependiendo de la categoria me muestra una lista de marcas
3º Dependiendo de la marca una lista de modelos
4º Tengo dos casillas para poner año, DESDE y HASTA, lo que quiero es que si no hay otros datos me busque entre dos fechas, y si hay datos anteriores, que me busque entre dos fechas pero en esos datos.
5º Si coloco alguna palabra clave de la celda OTRAS, igual que las operaciones de año.

Aun cojeo un poco con el IF, ELSE y todo esto, que imagino que por ahi esta la solucion.

Esto es lo que tengo hasta ahora, y no funciona nada de nada.
Código HTML:
<?php
require("libreria/verificarpassword.php");
$sel = array();
$sel[1] = "_sel";
?>
<html>

<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="objetos/estilosoft.css" rel="stylesheet" type="text/css" />
<script src="libreria/funcionesjava.js" type="text/javascript"></script>
<script type="text/javascript">document.onkeypress = noENTER;</script>
</head>
<body leftmargin="30" topmargin="0">

<?
	if ($_POST["bt_enviar"]=="" && $nummodcli==""){
?>
	<form action="buscar.php" method="post" enctype="multipart/form-data" name="form1">
	<table width="100%" border="0" cellpadding="1" class="textogrisgestor">
	  <tr>
		<td valign="top" width="50%">
		<br><br>
        Categoria<br />
        <select name="categoria" class="cajas">
            <option value="1"/>Dos ruedas&nbsp;&nbsp;&nbsp;&nbsp;
            <option value="2"/>Automovil&nbsp;&nbsp;&nbsp;&nbsp;
            <option value="3"/>Vehiculo Industrial<br />
            <option value="4"/>Tractor&nbsp;&nbsp;&nbsp;&nbsp;
            <option value="5"/>Otros<br />
        </select>
<br /><br />


            Marca<br />
            <select name="marca" class="cajas">
<?php $busca2 = @mysql_query("SELECT * FROM marca ORDER BY nombre_marca ASC ");
	while ($arrbusca2 = mysql_fetch_array($busca2)){
	$marcas = $arrbusca2["nombre_marca"]; ?>
    
           	  <option value="<?php echo $marcas;?>"><?php echo $marcas;?></option>
            <?php } ?>
            </select><br /><br />
Modelo<br />
            <select name="modelo" class="cajas">
<?php $busca = @mysql_query("SELECT * FROM archivo WHERE marca LIKE '%$marcas%' ORDER BY modelo ASC ");
	while ($arrbusca = mysql_fetch_array($busca)){
	$modelos = $arrbusca["modelo"]; ?>
    
           	  <option value="<?php echo $modelos;?>"><?php echo $modelos;?></option>
            <?php } ?>
            </select><br /><br />
		<b>Año</b><br /><br />

        Desde <br />
		<input name="ano1" type="text" value=""><br />
        <br />Hasta<br />
        <input name="ano2" type="text" value=""><br /><br />
        <br />Palabras Clave<br />
        <input name="pclave" type="text" value=""><br /><br />



		<input type="submit" name="bt_enviar" value="Enviar" class="botoncrema">&nbsp;&nbsp;&nbsp;&nbsp;
		</td>
		<td valign="top" width="50%">
		</td>
	  </tr>
	</table>
	</form>
<?
	}else{
?>		
	<table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="10%">&nbsp;</td>
        <td width="80%">
        <div class="textogrisgestor">
<?
		//definimos los datos de busqueda		
		if ($categoria ==""){		
			$categoria = $_POST["categoria"];
		}
		if ($marca ==""){		
			$marca = $_POST["marca"];
		}
		if ($modelo ==""){		
			$modelo = $_POST["modelo"];
		}
		if ($ano1 ==""){		
			$ano1 = $_POST["ano1"];
		}
		if ($ano2 ==""){		
			$ano2 = $_POST["ano2"];
		}
		//definimos el numero de registros a mostrar
		$numreg = 30;
		//calculamos el numero de resultados
		$busqueda= @mysql_query("SELECT * FROM archivo WHERE categoria LIKE '%$categoria%' OR WHERE marca LIKE '%$marca%' OR WHERE modelo LIKE '%$modelo%' OR WHERE ano LIKE '%$ano1%' < '%$ano2%'");
		$resultados = mysql_num_rows ($busqueda);
		$paginas = ceil($resultados / $numreg);
		//damos un valor a num que es la variable que incrementa las paginas
		if ($nummodcli>0) { 
			$n=$nummodcli;
		} else {
			$n=0;
		}
		//introducimos los parametros de consulta a la base de datos. 5 es el numero de registros a mostrar
		$busqueda= @mysql_query("SELECT * FROM archivo WHERE categoria LIKE '%$categoria%' OR WHERE marca LIKE '%$marca%' OR WHERE modelo LIKE '%$modelo%' OR WHERE ano LIKE '%$ano1%' < '%$ano2%' ORDER BY id DESC LIMIT ".$n." ,".$numreg);
		if (!$busqueda){
			echo ("Error al seleccionar los elementos de la base de datos, Inténtelo más tarde");
		exit();
		}
		//visualizamos en pantalla los resultados
		echo "Se han encontrado ".$resultados." coincidencias.<br><br><br><br>";
		while ($row = mysql_fetch_array($busqueda)){
?>		
                <table width="80%" border="0" class="textogrisgestor">
				  <tr>
				  	<td valign="bottom">
				  	<? echo($row["categoria"]);?> 
					</td>
					<td>&nbsp;</td>
                    <td valign="bottom">
				  	<? echo($row["marca"]);?> 
					</td>
					<td>&nbsp;</td>
					<td valign="bottom">
					<? echo($row["modelo"]);?>
					</td>
                    <td width="20%" valign="bottom">
				  	<? echo($row["ano"]);?> 
					</td>
					<td>&nbsp;</td>
					<td width="20%" valign="bottom"><a href="resultado.php?resultado=<? echo $row["id"];?>" class="seleccionargestor">Seleccionar</a></td>
				  </tr>
				</table>
<?		
		}
?>
        <table width="100%">
          <tr>
        	<td width="50%"> 
            <div align="left"> 
<?
			if ($resultados > 0){
				//definimos los botones anterior y siguiente
				if ($count > 0){
					echo "<br><a href='buscar.php?nummodcli=";
					echo $n-$numreg;
					echo "&count=";
					echo $count - 1;
					echo "&titulo=";
					echo $titulo;
					echo "' class='seleccionargestor'>Anterior</a>";
				}
?>
            </div>
			</td>
           	<td width="50%"> 
            <div align="right"> 
<?
				if ($count < ($paginas-1)){
					echo "<br><a href='buscar.php?nummodcli=";
					echo $n+$numreg;
					echo "&count=";
					echo $count + 1;
					echo "&titulo=";
					echo $titulo;
					echo "' class='seleccionargestor'>Siguiente</a>";
				}
			}
?>
            </div>
			</td>
          </tr>
        </table>
		</div>
		</td>
        <td width="15%">&nbsp;</td>
      </tr>
    </table>
</body>
</html>
<?
}
?>