Foros del Web » Programando para Internet » PHP »

Estructura IF con array list PHP

Estas en el tema de Estructura IF con array list PHP en el foro de PHP en Foros del Web. Bueno tengo una consulta donde guardo mis variables dentro de una lista @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $evento = mysql_query ( "SELECT * FROM ...
  #1 (permalink)  
Antiguo 20/08/2013, 16:05
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Exclamación Estructura IF con array list PHP

Bueno tengo una consulta donde guardo mis variables dentro de una lista

Código PHP:
Ver original
  1. $evento = mysql_query("SELECT * FROM eventos");
  2.   while($fechas = mysql_fetch_array($evento))
  3.   {
  4.      list($r_anio1, $r_mes1, $r_dia1) = explode('-', $fechas['fecha']);
  5.    }

Si imprimo las variables me muestra todos los valores por separado, así se que si me guarda correctamente todos los valores.

Como hago para comparar cada valor en un IF. Estoy haciendo esto

Código PHP:
Ver original
  1. if (($r_anio1 == $anio) && ($r_mes1 == $mes) && ($r_dia1 == $d)) {
  2.    echo '<td style="background-color:#D80100"></td>';
  3. }

El problema que tengo es que solo me compara el último valor guardada en la lista.
Como hago para que sean todos??
  #2 (permalink)  
Antiguo 20/08/2013, 16:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Estructura IF con array list PHP

Pues tendrías que hacerlo en cada vuelta del while(), de la forma en que lo tienes el while() sólo sirve para darle la vuelta todo y sobreescribir las mismas variables una y otra vez.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 20/08/2013, 16:40
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Estructura IF con array list PHP

Pues lo meti en el while como me dijiste pero ahora no me manda nada

while($fechas = mysql_fetch_array($evento))
{
list($r_anio1, $r_mes1, $r_dia1) = explode('-', $fechas['fecha']);

if (($r_anio1 == $anio) && ($r_mes1 == $mes) && ($r_dia1 == $d)) {
echo '<td style="background-color:#D80100"></td>';
}else {
echo '<td></td>';
}
}
  #4 (permalink)  
Antiguo 20/08/2013, 16:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Estructura IF con array list PHP

Espera, no te he dicho que por arte de magia iba a funcionar si lo metías en el while(), la idea es que entiendas lo que estás haciendo, no que te digamos exactamente qué hacer.

¿Cómo sabes que no muestra nada?

¿Y si en lugar de una celdas vacía imprimes algo más visible?

Evidentemente sin conocer el resto del código nos dejas casi casi adivinando la cosa, sólo tu sabes lo que haces.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 20/08/2013, 16:58
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Estructura IF con array list PHP

Se que no muestra nada porque lo estoy probando.

Ya estoy empezando a modificar el codigo pero aún no me da el resultado que quiero.

Ok!
Tengo 2 select. Uno para el Mes y otro para el Año.
Al darle mostrar me aparece una tabla con los días del mes y el año.

Código PHP:
Ver original
  1. $d = 1;
  2. while($d <= $dias_x_mes) //Estructura While para mostrar FILA de los días del Mes y el Año seleccionados
  3. {
  4.    echo '<td id="'.$d++.'"></td>'; 
  5. }

Hasta aquí todo va bien.

Ahora de una BD tomo la fecha para comprobar si existen eventos en ese mes y año es por eso que hice esto.
Código PHP:
Ver original
  1. $evento = mysql_query("SELECT * FROM eventos");
  2. while($fechas = mysql_fetch_array($evento))
  3. {
  4.     list($r_anio1, $r_mes1, $r_dia1) = explode('-', $fechas['fecha']);
  5. }

POR EJEMPLO: Si existe una fecha 20-08-2013
Al seleccionar el mes de Agosto y el Año 2013 solo la celda 20 deberá estar de un color.

Como te lo mostré en un principio me lo da.
El problema resulta cuando existen varios eventos dentro del mes y año seleccionados solamente me tomaba el último valor, por lo que solo se colocaba de un color una celda.
  #6 (permalink)  
Antiguo 20/08/2013, 17:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Estructura IF con array list PHP

Que tu veas los resultados no sirve de nada si no sabes explicar lo que obtienes.

Y pues tampoco podemos leer tu mente.

Intenta esto y por favor comparte los resultados:

Código PHP:
Ver original
  1. while($fechas = mysql_fetch_array($evento))
  2. {
  3.   list($r_anio1, $r_mes1, $r_dia1) = explode('-', $fechas['fecha']);
  4.   echo "($r_anio1==$anio) && ($r_mes1==$mes) && ($r_dia1==$d)<br>";
  5. }

¿Eso qué muestra?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 20/08/2013, 17:21
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Estructura IF con array list PHP

Pue mira si que me escribe todos los resultados. Seleccione el Año 2013 y el Mes de Agosto

(2013==2013) && (10==8) && (30==1)
(2013==2013) && (07==8) && (16==1)
(2012==2013) && (08==8) && (29==1)
(2013==2013) && (08==8) && (28==1)

Ahora veo que al mes le tengo que agregar un cero porque entonces no me lo tomará igual y en cuanto al día ($d), como no está aumentando el valor pues siempre da 1.

Entonces comenzaré por corregir los del mes y probare con el día si es que me hace la comparación correcta

Etiquetas: list
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 08:31.