Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/05/2013, 15:53
Avatar de bulter
bulter
 
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 4 meses
Puntos: 20
Respuesta: buscador no muestra datos

hans2488 En tu codigo en cada if lo que haces es predefinir la variable $sql

Cita:
if($_POST['costo']!=""){

$sql=' and costo like "%'.$_POST['costo'].'%"';

}
Aqui le das valor, no lo editas. Ademas te falta el WHERE.

gldelossantos Sabes lo que son DRY , WET y WETTT ?

Código PHP:
function addToWhere(array $data)
{
    
$result = array();
    
    foreach(
$data as $sqlColumn => $sqlValue)
    {
        if(!empty(
$sqlValue) && !empty($sqlColumn))
        {
            
array_push($result$sqlColumn " LIKE %'" $sqlValue "'%");
        }
    }
    
    return 
$result;
}

$sqlQuery "SELECT id, nombre, costo FROM items";

$where addToWhere(array("id"     => $_POST['id'],
                          
"nombre" => $_POST['nombre'],
                          
"costo"  => $_POST['costo']));

if(
count($where) > 0)
{
    
$sqlQuery .= " WHERE " implode(" OR "$where);
}

echo 
$sqlQuery
Asi es un poco mejor. No es perfecto, pero es mejor.