Foros del Web » Programando para Internet » PHP »

Buscador

Estas en el tema de Buscador en el foro de PHP en Foros del Web. Hola, estoy intentando crear un buscador avanzado y no logro crearlo no se lo que hago mal os dejo el codigo a ver si soys ...
  #1 (permalink)  
Antiguo 17/05/2011, 15:54
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 20 años, 3 meses
Puntos: 6
Buscador

Hola,
estoy intentando crear un buscador avanzado y no logro crearlo no se lo que hago mal os dejo el codigo a ver si soys capaces.

me explico: Tengo un formulario con varios campos de tipos de busqueda por ejemplo un campo de busqueda por palabra clave otro campo de tipo de barco otro de precio desde y otro precio hasta etc.

Gracias

Código PHP:
$marcamodelo $_REQUEST["marcamodelo"];
$tipobusca $_REQUEST["tipobusca"];
$eslorade $_REQUEST["eslorade"];
$esloraa $_REQUEST["esloraa"];
$preciode $_REQUEST["preciode"];
$precioa $_REQUEST["precioa"];
$anode $_REQUEST["anode"];
$anoa $_REQUEST["anoa"];

$sql2 "SELECT * FROM mibarcobd WHERE UCASE(marca) LIKE UCASE('%".$marcamodelo."%') OR UCASE(modelo) LIKE UCASE('%".$marcamodelo."%') AND id_barco LIKE '%".$tipobusca."%' AND precio >= $preciode AND precio <= $precioa AND eslora >= $eslorade AND eslora <= $esloraa AND ano >= $anode AND ano <= $anoa ORDER BY $orden asc LIMIT $comienzo, $cant_reg"
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #2 (permalink)  
Antiguo 17/05/2011, 16:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Buscador

Con solo ver el código no se entiende tu problema.

No sabemos si se produce un error, ni los campos del formulario, ni las restricciones que quieras aplicar a tu búsqueda.

Es como si pidieras que alguien adivine lo que planeas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/05/2011, 16:07
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Buscador

Estás haciendo una busqueda muy especifica

Código PHP:
$sql2 "SELECT * FROM mibarcobd
WHERE
(
UCASE(marca) LIKE UCASE('%"
.$marcamodelo."%') OR UCASE(modelo) LIKE UCASE('%".$marcamodelo."%')
)
AND id_barco LIKE '%"
.$tipobusca."%'
AND precio >= $preciode
AND precio <= $precioa
AND eslora >= $eslorade
AND eslora <= $esloraa
AND ano >= $anode
AND ano <= $anoa
ORDER BY $orden asc LIMIT $comienzo, $cant_reg"

agregando parentesis englobas un grupo de condiciones si no lo haces en este case se considerara siempre falsa la segunda, intenta y dime si te resulta
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #4 (permalink)  
Antiguo 17/05/2011, 16:08
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 20 años, 3 meses
Puntos: 6
Respuesta: Buscador

el error es este
Cita:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in...
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #5 (permalink)  
Antiguo 17/05/2011, 16:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Buscador

Esos errores siempre, lee bien, siempre suceden cuando la consulta está mal redactada.

¿Como saber donde esta el error preciso?

Una buena idea es acomodar la consulta en varias lineas, tal cual te han mostrado en el mensaje de antes. Solo así, e imprimiendo el valor de mysql_error() recibes el mensaje de error preciso donde ocurre el problema en la consulta.

Atiende.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 17/05/2011, 16:21
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 20 años, 3 meses
Puntos: 6
Respuesta: Buscador

Gracias stremin el error me sale si dejo algun campo sin rellenar y ademas rellenandolos no me devuelve el resultado.
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #7 (permalink)  
Antiguo 17/05/2011, 17:05
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Buscador

si dejas un campo sin rellenar la condición es falsa, ya que estas usando AND

cuando usas AND, si al menos una condición es falsa TODO es falso y por tanto no obtienes resultados

hace tu consulta en PHP con ifs

si esta vacío no incluyas esa condición.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #8 (permalink)  
Antiguo 17/05/2011, 17:13
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 20 años, 3 meses
Puntos: 6
Respuesta: Buscador

Cita:
Iniciado por stramin Ver Mensaje
si dejas un campo sin rellenar la condición es falsa, ya que estas usando AND

cuando usas AND, si al menos una condición es falsa TODO es falso y por tanto no obtienes resultados

hace tu consulta en PHP con ifs

si esta vacío no incluyas esa condición.
que es ifs?

te refieres a un if?
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!

Última edición por ken-obi; 17/05/2011 a las 17:19
  #9 (permalink)  
Antiguo 17/05/2011, 17:40
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 20 años, 3 meses
Puntos: 6
Respuesta: Buscador

intento hacer un if asi y no me funciona:
Código PHP:
Ver original
  1. if ($tipobusca == ""){
  2. $tipobusca = 1;
  3. }
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #10 (permalink)  
Antiguo 17/05/2011, 20:58
 
Fecha de Ingreso: diciembre-2004
Mensajes: 272
Antigüedad: 19 años, 11 meses
Puntos: 4
Respuesta: Buscador

Cita:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in...
Para evitar esos errores y saber mas facilmente si el error esta en la consulta, debes capturar el error que regresa la funcion mysql_query y antes de trabajar con los resultados, validar que el valor obtenido sea verdadero:


Código PHP:
$resultado mysql_query($query);

if( !
$resultado ){
   echo 
"Error en query";
   exit;


Saludos!
  #11 (permalink)  
Antiguo 18/05/2011, 01:34
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 20 años, 3 meses
Puntos: 6
Respuesta: Buscador

Gracias Juanchooo,
El error es que no acepta campos en blanco y no se como arreglarlo.
Ahora tambien tengo otro problema y es que en el campo de busqueda por palabras clave pongo por ejemplo "laser" o "Standard" y me muestra un contenido que tengo con esas palabras pero cuando escribo los dos "laser standard" no me los muestra. eso es debido a que el nombre laser esta en el campo marca y standard en el campo modelo. como puedo solucionarlo?

Gracias

Código PHP:
Ver original
  1. $sql2 = "SELECT * FROM mibarcobd
  2. WHERE
  3. (
  4. UCASE(marca) LIKE UCASE('%".$marcamodelo."%') OR UCASE(modelo) LIKE UCASE('%".$marcamodelo."%')
  5. )
  6. AND id_barco LIKE '%".$tipobusca."%'
  7. AND precio >= $preciode
  8. AND precio <= $precioa
  9. AND eslora >= $eslorade
  10. AND eslora <= $esloraa
  11. AND ano >= $anode
  12. AND ano <= $anoa
  13. ORDER BY $orden asc LIMIT $comienzo, $cant_reg";
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #12 (permalink)  
Antiguo 18/05/2011, 02:59
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 20 años, 3 meses
Puntos: 6
Respuesta: Buscador

e echo esto y tampoco funciona:


Código PHP:
Ver original
  1. if ($marcamodelo != NULL){
  2.     $marcamodeloprint == "(UCASE(marca) LIKE UCASE('%".$marcamodelo."%') OR UCASE(modelo) LIKE UCASE('%".$marcamodelo."%'))";
  3. }elseif ($tipobusca != NULL){
  4.     $tipobuscaprint == "AND tipo LIKE $tipobusca";
  5. }elseif ($eslorade != NULL){
  6.     $esloradeprint == "AND eslora >= $eslorade";
  7. }elseif ($esloraa != NULL){
  8.     $esloraaprint == "AND eslora <= $esloraa";
  9. }elseif ($preciode != NULL){
  10.     $preciodeprint == "AND precio >= $preciode";
  11. }elseif ($precioa != NULL){
  12.     $precioaprint == "AND precio <= $precioa";
  13. }elseif ($anode != NULL){
  14.     $anodeprint == "AND ano >= $anode";
  15. }elseif ($anoa != NULL){
  16.     $anoaprint == "AND ano <= $anoa";
  17. }
  18.  
  19. $sql2 = "SELECT * FROM mibarcobd WHERE $marcamodeloprint $tipobuscaprint $esloradeprint $esloraaprint $preciodeprint $precioaprint $anodeprint $anoaprint ORDER BY $orden asc LIMIT $comienzo, $cant_reg";
  20. }
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #13 (permalink)  
Antiguo 18/05/2011, 04:30
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 20 años, 3 meses
Puntos: 6
Respuesta: Buscador

Esto tambien y tampoco aggggg!!

Código PHP:
Ver original
  1. if ($marcamodelo == ""){
  2.     $marcamodeloprint = "";
  3. }else{$marcamodeloprint = "(UCASE(marca) LIKE UCASE('%".$marcamodelo."%') OR UCASE(modelo) LIKE UCASE('%".$marcamodelo."%'))";
  4.    
  5. }
  6. if ($tipobusca == ""){
  7.     $tipobuscaprint = "";
  8. }else{$tipobuscaprint = "AND tipo LIKE $tipobusca";
  9.  
  10. }
  11. if ($eslorade == ""){
  12.     $esloradeprint = "";
  13. }else{$esloradeprint = "AND eslora >= $eslorade";
  14.  
  15. }
  16. if ($esloraa == ""){
  17.     $esloraaprint = "";
  18. }else{$esloraaprint = "AND eslora <= $esloraa";
  19.  
  20. }
  21. if ($preciode == ""){
  22.     $preciodeprint = "";
  23. }else{$preciodeprint = "AND precio >= $preciode";
  24.  
  25. }
  26. if ($precioa == ""){
  27.     $precioaprint = "";
  28. }else{$precioaprint = "AND precio <= $precioa";
  29.  
  30. }
  31. if ($anode == ""){
  32.     $anodeprint = "";
  33. }else{$anodeprint = "AND ano >= $anode";
  34.  
  35. }
  36. if ($anoa == ""){
  37.     $anoaprint = "";
  38. }else{$anoaprint = "AND ano <= $anoa";
  39. }
  40.  
  41. $sql2 = "SELECT * FROM mibarcobd WHERE $marcamodeloprint $tipobuscaprint $esloradeprint $esloraaprint $preciodeprint $precioaprint $anodeprint $anoaprint ORDER BY $orden asc LIMIT $comienzo, $cant_reg";
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #14 (permalink)  
Antiguo 18/05/2011, 08:32
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Buscador

has andado cerca, el problema de como lo haces es que incluyes los AND aunque el usuario no haya ingresado lo primero y por tanto empieza con AND, fijate en este, lee los comentarios que he puesto:

Código PHP:
$wheres=""//inicias una variable vacía
if ($marcamodelo$wheres "(marca LIKE '%".$marcamodelo."%' OR modelo LIKE '%".$marcamodelo."%')"// no necesitas UCASE cuando usas like
// en la variable $wheres guardas tu consulta
    
if ($tipobusca){ // en vez de ver si es falsa revisa que sea verdadera
  
if($wheres$wheres.=" AND"// solo si ya hay datos agregas AND
  
$wheres.= " tipo LIKE '$tipobusca'"//en vez de asignar diferentes variables usas una con todas
}
 
if (
$eslorade){ // puedes saber si una variable tiene algo dejandola sola en el if
  
if($wheres$wheres.=" AND"//debes repetirlo en todas
  
$wheres.= " tipo LIKE '$eslorade'"//si es texto no olvides las comillas
}// de esta forma no necesitas poner }else{ y te ahorras lineas
 
if ($esloraa){
  
f($wheres$wheres.=" AND"// no olvides el espacio antes de AND
  
$wheres.= " eslora <= $esloraa"// y el espacio antes de cada condicion
}

if (
$preciode){ // una variable es falsa si es: 0, NULL, "", false y "0"
  
f($wheres$wheres.=" AND"// el .= sirve para agregar texto
  
$wheres.= " precio >= $preciode";
}

if (
$precioa){
  
f($wheres$wheres.=" AND";
  
$wheres.= " precio <= $precioa";
}

if (
$anode){
  
f($wheres$wheres.=" AND";
  
$wheres.= " ano >= $anode";
}

if (
$anoa){
  
f($wheres$wheres.=" AND";
  
$wheres.= " ano <= $anoa";
}

// ahora aqui solo pones $where
$sql2 "SELECT * FROM mibarcobd WHERE $where ORDER BY $orden asc LIMIT $comienzo, $cant_reg"
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #15 (permalink)  
Antiguo 18/05/2011, 11:20
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 20 años, 3 meses
Puntos: 6
Respuesta: Buscador

Muchas gracias stramin !!
al final hice esto:

Código PHP:
$marcamodelo $_REQUEST["marcamodelo"];
$tipobusca $_REQUEST["tipobusca"];
$eslorade $_REQUEST["eslorade"];
$esloraa $_REQUEST["esloraa"];
$preciode $_REQUEST["preciode"];
$precioa $_REQUEST["precioa"];
$anode $_REQUEST["anode"];
$anoa $_REQUEST["anoa"];



if (
$marcamodelo == "Buscar marca o modelo"){
    
$marcamodeloprint "";
    if (
$tipobusca == ""){
        
        }
    
$were "FROM mibarcobd";
}else{
$marcamodeloprint ", MATCH(marca,modelo) AGAINST ('%".$marcamodelo."%' IN BOOLEAN MODE) AS rank";
$marcamodeloprintdos "MATCH(marca,modelo) AGAINST('%".$marcamodelo."%' IN BOOLEAN MODE)";
$were "FROM mibarcobd WHERE";
//(UCASE(marca) LIKE UCASE('%".$marcamodelo."%') OR UCASE(modelo) LIKE UCASE('%".$marcamodelo."%'))
    
}
if (
$tipobusca == ""){
    
$tipobuscaprint "";
}else{
    if (
$marcamodelo == "Buscar marca o modelo"){
        
$tipobuscaprint "WHERE tipo LIKE $tipobusca";
        }else{
    
$tipobuscaprint "AND tipo LIKE $tipobusca";
        }
}
if (
$eslorade == ""){
    
$esloradeprint "";
}else{
    if (
$marcamodelo == "Buscar marca o modelo"){
        
$tipobuscaprint "WHERE eslora >= $eslorade";
        }else{
    
$esloradeprint "AND eslora >= $eslorade";
        }
}
if (
$esloraa == ""){
    
$esloraaprint "";
}else{
    if (
$marcamodelo == "Buscar marca o modelo"){
        
$tipobuscaprint "WHERE eslora <= $esloraa";
        }else{
    
$esloraaprint "AND eslora <= $esloraa";
        }
}
if (
$preciode == ""){
    
$preciodeprint "";
}else{
    if (
$marcamodelo == "Buscar marca o modelo"){
        
$tipobuscaprint "WHERE precio >= $preciode";
        }else{
    
$preciodeprint "AND precio >= $preciode";
        }
}
if (
$precioa == ""){
    
$precioaprint "";
}else{
    if (
$marcamodelo == "Buscar marca o modelo"){
        
$tipobuscaprint "WHERE precio <= $precioa";
        }else{
    
$precioaprint "AND precio <= $precioa";
        }
}
if (
$anode == ""){
    
$anodeprint "";
}else{
    if (
$marcamodelo == "Buscar marca o modelo"){
        
$tipobuscaprint "WHERE ano >= $anode";
        }else{
    
$anodeprint "AND ano >= $anode";
        }
}
if (
$anoa == ""){
    
$anoaprint "";
}else{
    if (
$marcamodelo == "Buscar marca o modelo"){
        
$tipobuscaprint "WHERE ano <= $anoa";
        }else{
    
$anoaprint "AND ano <= $anoa";
        }
}

$sql2 "SELECT *$marcamodeloprint $were $marcamodeloprintdos $tipobuscaprint $esloradeprint $esloraaprint $preciodeprint $precioaprint $anodeprint $anoaprint ORDER BY $orden asc LIMIT $comienzo, $cant_reg"
Gracias a todos !!
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #16 (permalink)  
Antiguo 18/05/2011, 12:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Buscador

Genial!

Al final incluso es mas legible y se entiendo el código.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 18/05/2011, 12:26
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Buscador

no sirve, si no pones marca o modelo pero pones algo en todos los demás campos te va a quedar así:

Código MySQL:
Ver original
  1. WHERE tipo LIKE $tipobusca WHERE eslora >= $eslorade WHERE eslora >= $eslorade WHERE eslora <= $esloraa WHERE precio >= $preciode WHERE precio >= $precioa WHERE ano >= $anode WHERE ano >= $anoa

lo que te dará error ya que no puedes poner mas de un WHERE en tu consulta.

además creo que te complicaste infinitamente con la primera parte de la sentencia:

Código MySQL:
Ver original
  1. , MATCH(marca,modelo) AGAINST ('%".$marcamodelo."%' IN BOOLEAN MODE) AS rank
  2. MATCH(marca,modelo) AGAINST('%".$marcamodelo."%' IN BOOLEAN MODE)
  3. FROM mibarcobd WHERE

y luego en PHP, tienes variables no declaradas si no se ha seleccionado marca o modelo:

Código PHP:
Ver original
  1. SELECT *$marcamodeloprint $were $marcamodeloprintdos $tipobuscaprint $esloradeprint $esloraaprint $preciodeprint $precioaprint $anodeprint $anoaprint ORDER BY $orden asc LIMIT $comienzo, $cant_reg

alargas mucho tu código innecesariamente para hacer algo tan simple como comparar una cosa con otra.

...
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #18 (permalink)  
Antiguo 18/05/2011, 12:37
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 20 años, 3 meses
Puntos: 6
Respuesta: Buscador

pues me funciona perfectamente
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #19 (permalink)  
Antiguo 19/05/2011, 02:26
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 20 años, 3 meses
Puntos: 6
Respuesta: Buscador

Cita:
Iniciado por stramin Ver Mensaje
no sirve, si no pones marca o modelo pero pones algo en todos los demás campos te va a quedar así:

Código MySQL:
Ver original
  1. WHERE tipo LIKE $tipobusca WHERE eslora >= $eslorade WHERE eslora >= $eslorade WHERE eslora <= $esloraa WHERE precio >= $preciode WHERE precio >= $precioa WHERE ano >= $anode WHERE ano >= $anoa

lo que te dará error ya que no puedes poner mas de un WHERE en tu consulta.

además creo que te complicaste infinitamente con la primera parte de la sentencia:

Código MySQL:
Ver original
  1. , MATCH(marca,modelo) AGAINST ('%".$marcamodelo."%' IN BOOLEAN MODE) AS rank
  2. MATCH(marca,modelo) AGAINST('%".$marcamodelo."%' IN BOOLEAN MODE)
  3. FROM mibarcobd WHERE

y luego en PHP, tienes variables no declaradas si no se ha seleccionado marca o modelo:

Código PHP:
Ver original
  1. SELECT *$marcamodeloprint $were $marcamodeloprintdos $tipobuscaprint $esloradeprint $esloraaprint $preciodeprint $precioaprint $anodeprint $anoaprint ORDER BY $orden asc LIMIT $comienzo, $cant_reg

alargas mucho tu código innecesariamente para hacer algo tan simple como comparar una cosa con otra.

...
PUES LLEVABAS TODA LA RAZON DEL MUNDO!!!

AL FINAL TE HICE CASO Y PROBE CON TU TEXTO Y VUALA! FUNCIONO A LA PERFECCION.

MUCHISIMAS GRACIAS

Código PHP:
if ($marcamodelo == "Buscar marca o modelo"){
    
$marcamodelo "";
}

$wheres=""//inicias una variable vacía
$wheres "(marca LIKE '%".$marcamodelo."%' OR modelo LIKE '%".$marcamodelo."%')"// no necesitas UCASE cuando usas like
// en la variable $wheres guardas tu consulta
    
if ($tipobusca){ // en vez de ver si es falsa revisa que sea verdadera
  
if($wheres$wheres.=" AND"// solo si ya hay datos agregas AND
  
$wheres.= " tipo LIKE '$tipobusca'"//en vez de asignar diferentes variables usas una con todas
}
 
if (
$eslorade){ // puedes saber si una variable tiene algo dejandola sola en el if
  
if($wheres$wheres.=" AND"//debes repetirlo en todas
  
$wheres.= " eslora >= $eslorade"//si es texto no olvides las comillas
}// de esta forma no necesitas poner }else{ y te ahorras lineas
 
if ($esloraa){
  if(
$wheres$wheres.=" AND"// no olvides el espacio antes de AND
  
$wheres.= " eslora <= $esloraa"// y el espacio antes de cada condicion
}

if (
$preciode){ // una variable es falsa si es: 0, NULL, "", false y "0"
  
if($wheres$wheres.=" AND"// el .= sirve para agregar texto
  
$wheres.= " precio >= $preciode";
}

if (
$precioa){
  if(
$wheres$wheres.=" AND";
  
$wheres.= " precio <= $precioa";
}

if (
$anode){
  if(
$wheres$wheres.=" AND";
  
$wheres.= " ano >= $anode";
}

if (
$anoa){
  if(
$wheres$wheres.=" AND";
  
$wheres.= " ano <= $anoa";
}

// ahora aqui solo pones $where
$sql2 "SELECT * FROM mibarcobd WHERE $wheres ORDER BY $orden asc LIMIT $comienzo, $cant_reg"
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #20 (permalink)  
Antiguo 19/05/2011, 10:02
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Buscador

uf, que bueno que lo notaste, yo ya no sabía como explicarlo...
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: buscadores
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:41.