Ver Mensaje Individual
  #23 (permalink)  
Antiguo 15/08/2009, 15:42
gariko01
Usuario no validado
 
Fecha de Ingreso: agosto-2009
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Busqueda con Multiples Select.

He encontrado un fallo que se me paso por alto y es cuando no pones ninguna seleccion en los select, da un error.

Código:
modelo = 0
bus = 0
fabricante = 0
cpu = 0
motherboard = 0
extras = 0
submit = GO
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Otro fallo que he visto tambien ahora, y es que aunque saca los resultados, realmente no busca saca todos, anteriormente no me di cuenta de esto, pero ahora que ya estoy terminando todo, me acabo de percatar, si tengo 5 filas y 1 es diferente, deberia de sacar solo una, pero me saca todas, es decir no filtra.


El codigo es el siguiente:

Código PHP:
<?php

 
include("db_conecta.inc");
   
$link=Conectarse();
   
$result=mysql_query("select * from prueba",$link);

//Muestra lo que hay seleccionado.
foreach($_POST as $k => $v){
  echo 
$k " = " $v."<br />";
}
// Fin de muestra.


$modelo = (!empty($_POST["modelo"])
    ? 
" modelo='".trim($_POST["modelo"])."'"
        
"");

$bus = (!empty($_POST["bus"])
        ? (!empty(
$modelo)
                ? 
" AND bus='".trim($_POST["bus"])."'"
                
" bus='".trim($_POST["bus"])."'")
        : 
"");

$fabricante = (!empty($_POST["fabricante"])
        ? (!empty(
$modelo) || !empty($bus)
                ? 
" AND fabricante='".trim($_POST["fabricante"])."'"
                
" fabricante='".trim($_POST["fabricante"])."'")
        : 
"");

$cpu = (!empty($_POST["cpu"])
        ? (!empty(
$modelo) || !empty($bus) || !empty($fabricante)
                ? 
" AND cpu='".trim($_POST["cpu"])."'"
                
" cpu='".trim($_POST["cpu"])."'")
        : 
"");

$motherboard = (!empty($_POST["motherboard"])
        ? (!empty(
$modelo) || !empty($bus) || !empty($fabricante) || !empty($cpu)
                ? 
" AND motherboard='".trim($_POST["motherboard"])."'"
                
" motherboard='".trim($_POST["motherboard"])."'")
        : 
"");

$extras = (!empty($_POST["extras"])
        ? (!empty(
$modelo) || !empty($bus) || !empty($fabricante) || !empty($cpu) || !empty($motherboard)
                ? 
" AND extras='".trim($_POST["extras"])."'"
                
" extras='".trim($_POST["extras"])."'")
        : 
"");

$s "SELECT * FROM prueba WHERE "  
        
$modelo 
        
$bus 
        
$fabricante 
        
$cpu 
        
$motherboard 
        
$extras
$query mysql_query($s) or die(mysql_error());
 
while(
$row mysql_fetch_assoc($query)){
  echo 
$row["modelo"] . " - " $row["bus"] . " - " $row["fabricante"] . " - " $row["cpu"] . " - " $row["motherboard"] . " - " $row["extras"] . "<br />";
}

?>

Última edición por gariko01; 15/08/2009 a las 16:00