Foros del Web » Programando para Internet » PHP »

comodin '%'

Estas en el tema de comodin '%' en el foro de PHP en Foros del Web. Hola, mi problema es el siguiente. En mi web tengo un formulario para hacer busquedas en los registros con 2 campos. Son 'mes' y 'semana'. ...
  #1 (permalink)  
Antiguo 19/08/2004, 18:07
 
Fecha de Ingreso: junio-2004
Mensajes: 91
Antigüedad: 19 años, 10 meses
Puntos: 0
Pregunta comodin '%'

Hola, mi problema es el siguiente.

En mi web tengo un formulario para hacer busquedas en los registros con 2 campos. Son 'mes' y 'semana'. Para que al hacer la busqueda al dejar en blanco alguno de los 2 campos no salgan 0 registros he puesto como valor en blanco el comodin '%'. Entonces tengo un problema.
Si no se hace busqueda el titulo justo encima de los registros seria "Novedades" (if (!isset($_GET['submit'])){ echo "Novedades"}. Si alguien busca lo siguiente, mes=agosto&semana=2, tiene que salir "Semana 2 Agosto" pero puede darse el caso de que busque solo el mes, mes=agosto&semana=%, y solo deberia salir Agosto. El problema es que no se puede diferenciar el % si no se le da valor de cualquier otro valor ya que el % es un comodin. Si se pudiera pondria algo asi como (if ($semana != "%"){echo "Semana";echo $semana;} pero como es un comodin con esto siempre saldra "Semana".

Un detalle. Podria poner al mostrar los registros, en el "query" el comodin, es decir "SELECT * FROM contenido WHERE mes LIKE '%$mes%'..." y asi poder poner para dejar en blanco como valor "" y despues poder usarlo "(if ($semana != ""){echo "Semana";echo $semana;}" pero es que tengo otro campo q es 'categoria' y varias categorias que comparten alguna palabra con lo cual si pusiera el comodin aqui "SELECT * FROM contenido WHERE categoria LIKE '%$categoria%'..." me saldrian tanto los registros de la categoria "fotos en el campo" como los de la categoria "fotos en la playa", ya que los dos tienen la palabra foto, por poner un ejemplo.

¿Podria hacer que en un momento dado el % no funcionase de comodin para aprovecharme de ello? ¿Si no como podria arreglarlo?

Espero haberme explicado mas o menos bien, aunq viendolo asi en general parece un trabalenguas ...

GRACIAS POR ADELANTADO...
  #2 (permalink)  
Antiguo 19/08/2004, 23:54
AKB
 
Fecha de Ingreso: agosto-2004
Mensajes: 52
Antigüedad: 19 años, 8 meses
Puntos: 0
Deja el campo semana vacio y simplemente comprueba...

(if ($semana != ""){echo "Semana";echo $semana;}

Más sencillo no ?

Para el otro tema, el de generar el sql.. simplemente vete generando el sql con condiciones. Por ejemplo para buscar un curso en una de mis webs se rellena un camppo de texto titulo y una serie de combos con condiciones, tipo de curso, precios, método de enseñanza, etc:

$condiciones="";
if ($busc_tipocurso!=0) { $condiciones.=" and (tipo='$busc_tipocurso')"; }
if ($busc_metodo!=0) { $condiciones.=" and (metodologia='$busc_metodo')"; }
if ($busc_provincia!=0) { $condiciones.=" and (sede like '%-$busc_provincia-%')"; }
if ($busc_precio!=0) {
switch ($busc_precio) {
case 1 :
$condiciones.=" and (precio='0.00')";
break;
case 2 :
$condiciones.=" and (precio between '0.00' AND '150.00')";
break;
case 3 :
$condiciones.=" and (precio between '150.01' AND '900.00')";
break;

default :
break;
}

}

$SQL = "SELECT * from cursos where titulo like '%$titulo%' ".$condiciones;

Y a consultar la bd se ha dicho, ya hemos creado el sql a nuestro gusto, dinámicamente.
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:31.