Foros del Web » Programando para Internet » PHP »

Script buscador erroneo

Estas en el tema de Script buscador erroneo en el foro de PHP en Foros del Web. Hola muchachos. Tengo un código de búsqueda que no me está funcionando. Recibe 4 parámetros (Rubro, Empresa, Provincia y Localidad), yo usé condiciones IF para ...
  #1 (permalink)  
Antiguo 24/10/2006, 23:16
Avatar de Netfrank  
Fecha de Ingreso: marzo-2006
Ubicación: Las Talitas - Tucumán
Mensajes: 226
Antigüedad: 18 años, 1 mes
Puntos: 3
Script buscador erroneo

Hola muchachos.

Tengo un código de búsqueda que no me está funcionando.

Recibe 4 parámetros (Rubro, Empresa, Provincia y Localidad), yo usé condiciones IF para que la sentencia sea correcta.

Me dá este error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ... (directorio)
Código PHP:
if($Provincia==Todas){
$Provincia="";
}
if(
$Localidad==Todas){
$Localidad="";
}
if(
$Rubro=Todos){
$Rubro="";
}

$conexio mysql_connect("localhost","wi310396","Exito2006");
mysql_select_db ("wi310396_guia"$conexio) OR die ("No se puede conectar");

if(empty(
$Empresa)){
if(empty(
$Provincia)){
if(empty(
$Localidad)){
$sql="SELECT * FROM clientes WHERE Rubro='$Rubro' order by Id";
}
}
} elseif(empty(
$Empresa)){
if(empty(
$Provincia)){
$sql="SELECT * FROM clientes WHERE Rubro='$Rubro' and Localidad='$Localidad' order by Id";
}
} elseif(empty(
$Empresa)){
if(empty(
$Localidad)){
$sql="SELECT * FROM clientes WHERE Rubro='$Rubro' and Provincia='$Provincia' order by Id";
}
} elseif(empty(
$Empresa)){
if(empty(
$Provincia)){
if(empty(
$Rubro)){
$sql="SELECT * FROM clientes WHERE Localidad='$Localidad' order by Id";
}
}
} elseif(empty(
$Empresa)){
if(empty(
$Localidad)){
if(empty(
$Rubro)){
$sql="SELECT * FROM clientes WHERE Provincia='$Provincia' order by Id";
}
}
} elseif(empty(
$Empresa)){
if(empty(
$Rubro)){
$sql="SELECT * FROM clientes WHERE Provincia='$Provincia' and Localidad='$Localidad' order by Id";
}
} elseif(empty(
$Empresa)){
$sql="SELECT * FROM clientes WHERE Rubro='$Rubro' and Localidad='$Localidad' and Provincia='$Provincia order by Id";

} elseif(empty(
$Rubro)){
if(empty(
$Provincia)){
if(empty(
$Localidad)){
$sql="SELECT * FROM clientes WHERE Empresa='$Empresa' order by Id";
}
}
} elseif(empty(
$Rubro)){
if(empty(
$Provincia)){
$sql="SELECT * FROM clientes WHERE Empresa='$Empresa' and Localidad='$Localidad' order by Id";
}
} elseif(empty(
$Rubro)){
if(empty(
$Localidad)){
$sql="SELECT * FROM clientes WHERE Empresa='$Empresa' and Provincia='$Provincia' order by Id";
}
} elseif(empty(
$Provincia)){
if(empty(
$Localidad)){
$sql="SELECT * FROM clientes WHERE Rubro='$Rubro' and Empresa='$Empresa' order by Id";
}
} else {
$sql="SELECT * FROM clientes WHERE Rubro='$Rubro' and Localidad='$Localidad' and Provincia='$Provincia and Empresa='$Empresa' order by Id";
}

echo 
"$sql";

$result=mysql_query($sql,$conexio);

if (
$rowmysql_fetch_array($result))
{
echo 
"<TABLE BORDER='1' BORDERCOLOR='009933' WIDTH='320'>";
echo 
"<TR bgcolor='009933'><TD><font face='Tahoma' size='2' color='FFFFFF'><b>Empresas encontradas:</b></font></TD></TR>";
DO
{
echo 
"<TR><TD><font face='Tahoma' size='2'># - <a href='empresas.php?N=".$row["Id"]."'>".$row["Empresa"]."</a></font></TD></TR>";
}
WHILE (
$row=mysql_fetch_array($result));
echo 
"</TABLE>";
} else {
echo 
"<TABLE BORDER='1' BORDERCOLOR='009933' WIDTH='320'>";
echo 
"<TR bgcolor='009933'><TD><font face='Tahoma' size='2' color='FFFFFF'><b>Empresas encontradas:</b></font></TD></TR>";
echo 
"<TR><TD><img src='img/icons/Atencion.gif'><font face='Tahoma' size='2'><b> Atención:</b> Su búsqueda no produjo resultados. Pruebe cambiando algunos datos.</font></TD></TR>";
echo 
"</TABLE>";

Necesito vuestra ayuda.
Desde ya gracias.
  #2 (permalink)  
Antiguo 25/10/2006, 03:08
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Tienes un par de sitios donde falta una comilla simple junto a Provincia='$Provincia

Luego creo q has hexo un lio enorme para montar la sentencia SELECT. Te voy a poner un ejemplo de lo q en mi caso haría en tu lugar:

Código PHP:
$criterios="";
if (!empty(
$Rubro)) $criterios.=" and Rubro='$Rubro'";
if (!empty(
$Provincia)) $criterios.=" and Provincia='$Provincia'";
if (!empty(
$Localidad)) $criterios.=" and Localidad='$Localidad'";
if (!empty(
$Empresa)) $criterios.=" and Empresa='$Empresa'";
$sql="SELECT * FROM clientes WHERE 1=1".$criterios
Espero q eso te sirva de algo y kizas te simplifique la consulta con tantos IF...

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:51.