Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Tomar ID de un input en una tabla para hacer una consulta

Estas en el tema de Tomar ID de un input en una tabla para hacer una consulta en el foro de PHP en Foros del Web. Hola que tal! Mi objetivo es tomar la fecha guardada en una BD y colorear la celda que pertenezca a esa fecha. Al principio selecciono ...
  #1 (permalink)  
Antiguo 20/08/2013, 14:28
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 2 meses
Puntos: 1
Exclamación Tomar ID de un input en una tabla para hacer una consulta

Hola que tal!
Mi objetivo es tomar la fecha guardada en una BD y colorear la celda que pertenezca a esa fecha.
Al principio selecciono el mes y el año donde me muestra una tabla: La primer fila muestra el numero de días del mes seleccionado y la primer columna me muestra las horas de las 13:00 a 20:00. Es decir, si selecciono el mes de febrero y el año 2013 me mostrara una tabla con 28 columnas (dias) y 8 filas (hora)

Ahora tengo el siguiente codigo:

Código PHP:
Ver original
  1. if($_POST['mostrar']) {  
  2.   //Guardar variables con POST para mostrar valores seleccionados  
  3.     $mes = $_POST['mes'];
  4.     $anio = $_POST['anio'];
  5.  
  6.     $evento = mysql_query("SELECT * FROM eventos"); //Consulta para sacar fechas
  7.     while($fechas = mysql_fetch_array($evento))
  8.    {
  9.     list($r_anio, $r_mes, $r_dia) = explode('-', $fechas['fecha']);
  10.     }
  11.  
  12.    //Ciclo WHILE para mostrar FILA DE DÍAS
  13.        //Ciclo WHILE para mostrar COLUMNA DE HORAS
  14.  
  15.            $d=1;//Variable para valor de celdas
  16.        while($rellenar <= $dias_x_mes) //Estructura While para rellenar COLUMNAS hasta el número de días existentes
  17.         {
  18.         if (($r_anio == $anio) && ($r_mes == $mes)) {
  19.                    echo '<td style="background-color:#D80100"><input type="hidden" value="'.$d.'"></td>';
  20.            $d++;
  21.                }else{
  22.                    echo '<td id="'.$d++.'"></td>';
  23.            }  
  24.               $rellenar++;
  25.            }
  26.  
  27. }

Hasta ahorita si existe una FECHA con el mes y el año seleccionado toda la tabla se colorea de rojo, si no existe aparece en blanco. Hasta aquí todo funciona correcto

Ahora lo que necesito es tomar el día para que solo se coloree la celda correspondiente al día. Lo he intentado de dos formas: con el input hidden, la variable $d enumera cada celda del 1 a los días existentes y colocandole un id a la celda pero no logro que solo se coloree esa celda en específico.

¿Alguien podría ayudarme?

Última edición por nades; 20/08/2013 a las 15:13 Razón: el título no explica bien lo que deseo
  #2 (permalink)  
Antiguo 20/08/2013, 15:18
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Respuesta: Tomar ID de un input en una tabla para hacer una consulta

Haz considerado usar javascript para este menester? Ya que la fecha y datos tomados de la BD no tienen drama, pero es en el usuario donde se va a comparar si hoy es lunes, martes de algun mes X??
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 20/08/2013, 15:23
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Tomar ID de un input en una tabla para hacer una consulta

Bueno, en realidad no necesito que me diga el día de la semana si no el número. es por eso la variable $d. Que va aumentando mientras se cumple el ciclo y le da su respectivo valor a cada celda. (del 1 al número de días existentes)

Pues si era una de mis opciones utilizar Javascript pero no he tenido mucho exito en utilizarlo ya que me he atorado.

Necesito tomar el valor de $d (ya sea 1,2,3 ...) y compararlo con mi $r_dia. Si son iguales unicamente esa celda deberá cambiar de color, de lo contrario quedará en blanco.

Me puedes indicar como se podría haces con JS si no existe otra solucion, porfavor?
  #4 (permalink)  
Antiguo 20/08/2013, 20:52
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Respuesta: Tomar ID de un input en una tabla para hacer una consulta

No tengo la menor idea, ya que no es el área de mi especialidad, pero porque no buscas un plugin jquery...

https://www.google.com.py/search?q=c...hrome&ie=UTF-8

Tengo uno dinámico que me muestra los eventos guardados en la BD y los que voy guardando, lo hice hace como 4 años, bajando un pluggin javascript, lo mezcle con PHP y XML para que sea dinamico... pero ahora lo miro y como no estoy enfocado en eso no tengo mucho tiempo en mirar que archivos utilizaba, pero eran varios, y es complejo...

Aún así no entiendo que quieres hacer, entiendo en escencia que quieres colorear, pero no se para que sirve, capaz explicando eso te podamos ayudar mucho más...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #5 (permalink)  
Antiguo 21/08/2013, 12:40
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Tomar ID de un input en una tabla para hacer una consulta

Ya había buscado algún plugin pero ninguno me resulta.

Pues el chiste que cambie de color unicamente la celda es para identificar que ese día ya esta ocupado.

Mira: el resultado final va a ser así



Yo selecciono en un principio el Mes y el Año para que me muestre los días del mes.

Se agregan eventos que estan registrados en la BD (fecha y hora)

Ahorita estoy batallando con la fecha nadamás.

Si en la BD esta registrada la fecha 2013-08-05. Al yo decirle que me muestre el MES AGOSTO y el AÑO 2013 dentro de la tabla (imagen) el día 5 debe aparecer en rojo para indicarme que existe une evento en ese día. es por eso que hago esto

Código PHP:
Ver original
  1. if (($r_anio == $anio) && ($r_mes == $mes)) {
  #6 (permalink)  
Antiguo 21/08/2013, 13:11
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 7 meses
Puntos: 55
Respuesta: Tomar ID de un input en una tabla para hacer una consulta

Hola, he visto que llevas varios dias buscando solucionar tu problema con diferentes formas, te ayudo.

Código PHP:
<?
    
if($_POST['mostrar']) {  
      
//Guardar variables con POST para mostrar valores seleccionados  
        
$mes $_POST['mes'];
        
$anio $_POST['anio'];
     
        
$evento mysql_query("SELECT * FROM eventos"); //Consulta para sacar fechas
        
while($fechas mysql_fetch_array($evento))
       {
        
$FECHAS_EN_BD[]=$fechas[fecha];//<-------------ALMACENAMOS TODAS LAS FECHAS EN UN ARRAY
        
}
     
       
//Ciclo WHILE para mostrar FILA DE DÍAS
           //Ciclo WHILE para mostrar COLUMNA DE HORAS
     
               
$rellenar=1;//<-------------TU VARIABLE RELLENAR TE SIRVE PARA SABER EN QUE DIA ESTAS
           
while($rellenar <= $dias_x_mes//Estructura While para rellenar COLUMNAS hasta el número de días existentes
            
{
            
$ESTA_FECHA_SQL=$anio."-".$mes."-".$rellenar;//<-------------CREAMOS LA FECHA EN LA QUE SE ENCUENTRA EL CICLO,DE LA FORMA YYYY-MM-DD YA QUE SE ALMACENAN NORMALMENTE DE ESA FORMA EN LA BD
                
if (in_array($ESTA_FECHA_SQL$FECHAS_EN_BD)) {//<-------------COMPARAMOS SI ESTA FECHA ESTA EN EL ARRAY DE LAS FECHAS DE LA BD
                    
echo '<td style="background-color:#D80100"></td>';
                }else{
                    echo 
'<td></td>';
                }
            
$rellenar++;
            }
     
    }
?>
Es importante que le des una estudiada a los array en php y sus funciones.
http://www.php.net/manual/es/ref.array.php

Saludos
  #7 (permalink)  
Antiguo 21/08/2013, 13:29
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Tomar ID de un input en una tabla para hacer una consulta

Si, así es, he intentado hacerlo de varias formas pero no encontraba la forma y al parecer no me daba a entender muy bien.

Muchas gracias por tu ayuda!!! y por tu tiempo tambien.
De verdad, algo así necesitaba.

Ahora, al parecer solo me toma el primer valor de la BD. No me compara todos los datos del array. Ahorita tengo 4 fechas dentro de la BD en el mismo mes y año para hacer mis pruebas. Y solo me cambia de un color el día del primer valor y a los demás no los toma en cuenta.

Gracias
  #8 (permalink)  
Antiguo 21/08/2013, 13:34
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 7 meses
Puntos: 55
Respuesta: Tomar ID de un input en una tabla para hacer una consulta

Ok, Coloca

Código PHP:
        while($fechas mysql_fetch_array($evento))
       {
        
$FECHAS_EN_BD[]=$fechas[fecha];
        } 
var_dump($FECHAS_EN_BD);//<---MUESTRA EL CONTENIDO DE LA VARIABLE 
y muestrame el resultado
  #9 (permalink)  
Antiguo 21/08/2013, 14:15
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Tomar ID de un input en una tabla para hacer una consulta

No espera, ya no será necesario.
Ya resultó. Exactamente eso es lo que quería

Muchisimas gracias ;

De verdad que me has servido de mucha ayuda.

Ahora continuare seleccionando también la hora y que solo se coloree la celda que esta en esa hora.

Haré el mismo procedimiento que me has enseñado. Guardare la hora en un array. y hare otro if preguntando si la hora existe en el array de las horas de la BD.
Espero que me resulte...

Gracias!!!
  #10 (permalink)  
Antiguo 21/08/2013, 14:21
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 7 meses
Puntos: 55
Respuesta: Tomar ID de un input en una tabla para hacer una consulta

Cita:
Iniciado por nades Ver Mensaje
No espera, ya no será necesario.
Ya resultó. Exactamente eso es lo que quería

Muchisimas gracias ;

De verdad que me has servido de mucha ayuda.

Ahora continuare seleccionando también la hora y que solo se coloree la celda que esta en esa hora.

Haré el mismo procedimiento que me has enseñado. Guardare la hora en un array. y hare otro if preguntando si la hora existe en el array de las horas de la BD.
Espero que me resulte...

Gracias!!!
diviertete

Etiquetas: php+base+de+datos, tables
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 09:49.