Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Consulta mysql sobre un array

Estas en el tema de Consulta mysql sobre un array en el foro de PHP en Foros del Web. Tengo una consulta mysql en la que una de sus condiciones es que un valor esté dentro de unos predefinidos en un array, pero no ...
  #1 (permalink)  
Antiguo 13/02/2014, 10:51
 
Fecha de Ingreso: enero-2012
Mensajes: 88
Antigüedad: 12 años, 3 meses
Puntos: 1
Consulta mysql sobre un array

Tengo una consulta mysql en la que una de sus condiciones es que un valor esté dentro de unos predefinidos en un array, pero no consigo que lo tenga en cuenta.

Creo que no se entiende bien, pero os dejo mi código, que creo que se entenderá algo mejor.

Código PHP:
$query "SELECT id,nombre,fecha_inicio,fecha_fin,tipo,pais,ccaa FROM nuke_calendario WHERE (fecha_inicio < '".$temporada."-".$messig."-01' AND fecha_inicio >= '".$temporada."-".$month."-01') ";

if (
$category!=0) { 
   
$query .= "AND tipo IN "
   if (
$category == 'UCI'$query .= "(1,2,3,4,5,6,7,8,9,10,11,12,13,14,51,52,61,78) ";
   elseif (
$category == 'ESP'$query .= "(7,8,9,10,11,12,14,80,81,82,83,84,85,86,87,88) ";
   elseif (
$category == 'FEM'$query .= "(7,8,14,90,91,92,93,94,95) ";
}

$query .= "ORDER BY fecha_inicio ASC"
Un saludo
  #2 (permalink)  
Antiguo 13/02/2014, 11:00
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Consulta mysql sobre un array

Así a simple vista no creo que sea problema de mysql (tampoco lo es de php) más bien te recomendaría revisar los valores de los filtros, ya que al menos el 7 se repite en los tres arreglos, e imprime (echo) la consulta para ver qué estás consultando.
  #3 (permalink)  
Antiguo 13/02/2014, 11:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta mysql sobre un array

A mi entender el fallo está aquí:
Código PHP:
Ver original
  1. if ($category!=0)
Si $category es una variable de cadena, como sugieren las siguientes evaluaciones:
Código PHP:
Ver original
  1. if ($category == 'UCI') $query .= "(1,2,3,4,5,6,7,8,9,10,11,12,13,14,51,52,61,78) ";
  2.    elseif ($category == 'ESP') $query .= "(7,8,9,10,11,12,14,80,81,82,83,84,85,86,87,88) ";
  3.    elseif ($category == 'FEM') $query .= "(7,8,14,90,91,92,93,94,95) ";
entonces no puedes compararla contra cero, porque en un contexto numérico, toda cadena con caracteres vale cero.
En todo caso, debería ser:
Código PHP:
Ver original
  1. if ($category!="") {
  2.    $query .= "AND tipo IN ";
  3.    if ($category == 'UCI') $query .= "(1,2,3,4,5,6,7,8,9,10,11,12,13,14,51,52,61,78) ";
  4.    elseif ($category == 'ESP') $query .= "(7,8,9,10,11,12,14,80,81,82,83,84,85,86,87,88) ";
  5.    elseif ($category == 'FEM') $query .= "(7,8,14,90,91,92,93,94,95) ";
  6. }
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql, select
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 21:01.