Foros del Web » Programando para Internet » PHP »

mejorar formulario criterio multiple

Estas en el tema de mejorar formulario criterio multiple en el foro de PHP en Foros del Web. Hola. ¿Qué me aconsejáis hacer para mejorar los resultados de esta query? Mil gracias a todos :) Código PHP: $clave  =  $_GET [ 'clave' ]; ...
  #1 (permalink)  
Antiguo 09/07/2010, 10:12
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
mejorar formulario criterio multiple

Hola. ¿Qué me aconsejáis hacer para mejorar los resultados de esta query? Mil gracias a todos :)

Código PHP:
$clave $_GET['clave'];
if (
$clave<>''){  


 
   
$trozos=explode(" ",$clave); 
   
$numero=count($trozos); 
  if (
$numero==1)
   { 
  
$buscar="SELECT * FROM $db WHERE NOMB LIKE '%$clave%' OR AUTOR LIKE '%$clave%' OR TEMA LIKE '%$clave%' OR COLECCION LIKE '%$clave%' OR EDITORIAL LIKE '%$clave%' OR LIBRE LIKE '%$clave%' OR OBSERVA LIKE '%$clave%' order by $ordenarpor $orden"
  }
  elseif (
$numero>1)
   { 
 
   
$buscar"SELECT * , MATCH (NOMB, AUTOR, TEMA, COLECCION, EDITORIAL, LIBRE, OBSERVA) AGAINST ('$clave') AS Score FROM $db WHERE MATCH (NOMB, AUTOR, TEMA, COLECCION, EDITORIAL, LIBRE, OBSERVA) AGAINST ('$clave') ORDER BY Score DESC ";
}

}elseif (!
$clave<>''){ 
 
$buscar "SELECT * FROM $db WHERE NOMB LIKE '%$NOMB%' AND AUTOR LIKE '%$AUTOR%' AND TEMA LIKE '%$TEMA%'  AND EDITORIAL LIKE '%$EDITORIAL%'  OR TEMA LIKE '%$TEMA%' AND (AUTOR LIKE '%$AUTOR%' AND EDITORIAL LIKE '%$EDITORIAL%' AND NOMB LIKE '%$NOMB%') OR NOMB LIKE '%$NOMB%' AND (AUTOR LIKE '%$AUTOR%' AND EDITORIAL LIKE '%$EDITORIAL%' AND TEMA LIKE '%$TEMA%') order by $ordenarpor $orden";
 } 

Última edición por charlyta; 11/07/2010 a las 09:09
  #2 (permalink)  
Antiguo 09/07/2010, 11:05
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: mejorar formulario criterio multiple

en el query no se pero con el código creo que te ayudaria asi
Código PHP:
Ver original
  1. $clave=$_GET['clave'];
  2. if (!empty($clave)){//checamos que no este vacia la variable, nota: el diferente es != y no <>(aunque pueda funcionar con este, no es lo adecuado)
  3.     $numero=count(explode(" ",$clave));
  4.     if ($numero==1){
  5.         $buscar="SELECT * FROM $db WHERE NOMB LIKE '%$clave%' OR AUTOR LIKE '%$clave%' OR TEMA LIKE '%$clave%' OR COLECCION LIKE '%$clave%' OR EDITORIAL LIKE '%$clave%' OR LIBRE LIKE '%$clave%' OR OBSERVA LIKE '%$clave%' order by $ordenarpor $orden";
  6.     }else{
  7.         $buscar= "SELECT * , MATCH (NOMB, AUTOR, TEMA, COLECCION, EDITORIAL, LIBRE, OBSERVA) AGAINST ('$clave') AS Score FROM $db WHERE MATCH (NOMB, AUTOR, TEMA, COLECCION, EDITORIAL, LIBRE, OBSERVA) AGAINST ('$clave') ORDER BY Score DESC ";
  8.     }
  9. }else{
  10.     $buscar = "SELECT * FROM $db WHERE NOMB LIKE '%$NOMB%' AND AUTOR LIKE '%$AUTOR%' AND TEMA LIKE '%$TEMA%'  AND EDITORIAL LIKE '%$EDITORIAL%'  OR TEMA LIKE '%$TEMA%' AND (AUTOR LIKE '%$AUTOR%' AND EDITORIAL LIKE '%$EDITORIAL%' AND NOMB LIKE '%$NOMB%') OR NOMB LIKE '%$NOMB%' AND (AUTOR LIKE '%$AUTOR%' AND EDITORIAL LIKE '%$EDITORIAL%' AND TEMA LIKE '%$TEMA%') order by $ordenarpor $orden";
  11. }
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: mejoras, formulario
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 02:53.