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 />";
}
?>