PHP - Como poner automáticamente las fechas de todos los domingos del año a una tabla php

   
Vista:

Como poner automáticamente las fechas de todos los domingos del año a una tabla php

Publicado por yesenia yesrodriguez731@gmail.com (3 intervenciones) el 17/10/2013 06:44:36
Hola a todos, necesito ayuda tengo en base de datos esta información:

id - -- fecha -- - adultos - sucursal
1 -2012-01-01-- 352 -- prueba1
2 -2012-01-08 -- 543 - - prueba1
3 -2012-01-15 -- 593 - - prueba1

1.- las fechas capturadas son todos los domingos del año y no se repiten.

y lo que quiero es que en una tabla me muestre la información de esta manera:



1.- no se si se pueda poner todas las fechas capturadas de la base de datos a esta tabla automáticamente asi como se ve en la imagen.
2.- como seleccionar el año para que me referencie a esta tabla según el año, asea que si selecciono 2012 me da los datos del 2012 con sus fechas correspondientes de los domingos de ese año y si selecciona otro año me tiene que dar los datos de ese año. Pero no se como hacerle. ayuda porfavor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Como poner automáticamente las fechas de todos los domingos del año a una tabla php

Publicado por Mari Carmen (145 intervenciones) el 17/10/2013 13:32:08
Esto es un ejemplo de la tabla que buscas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<table border="1">
 
    <thead>
        <tr>
            <th rowspan="3">Izquierda</th>
            <th colspan="10">Arriba del todo</th>
        </tr>
        <tr>
            <th colspan="3">Mes 1</th>
            <th colspan="3">Mes 2</th>
            <th colspan="2">Mes 3</th>
        </tr>
 
        <tr>
            <th>Fecha 1</th>
            <th>Fecha 2</th>
            <th>Fecha 3</th>
 
            <th>Fecha 4</th>
            <th>Fecha 5</th>
            <th>Fecha 6</th>
 
            <th>Fecha 7</th>
            <th>Fecha 8</th>
        </tr>
    </thead>
    <tr>
        <th>Sucursal 1</th>
        <td>Adulto 1</td>
        <td>Adulto 2</td>
        <td>Adulto 3</td>
 
        <td>Adulto 4</td>
        <td>Adulto 5</td>
        <td>Adulto 6</td>
 
        <td>Adulto 7</td>
        <td>Adulto 8</td>
    </tr>
    <tr>
        <th>Sucursal 2</th>
        <td>Adulto 1</td>
        <td>Adulto 2</td>
        <td>Adulto 3</td>
        <td>Adulto 4</td>
        <td>Adulto 5</td>
        <td>Adulto 6</td>
        <td>Adulto 7</td>
        <td>Adulto 8</td>
    </tr>
    <tr>
        <th>Sucursal 3</th>
         <td>Adulto 1</td>
        <td>Adulto 2</td>
        <td>Adulto 3</td>
        <td>Adulto 4</td>
        <td>Adulto 5</td>
        <td>Adulto 6</td>
        <td>Adulto 7</td>
        <td>Adulto 8</td>
    </tr>
</table>



El problema es sacar esa información de la base de datos y hacer los bucles necesarios para poner todos los campos en ese orden que he puesto.

Esta tarde intentaré mirarmelo si no te contestan antes
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como poner automáticamente las fechas de todos los domingos del año a una tabla php

Publicado por Yesenia yesrodriguez731@gmail.com (3 intervenciones) el 22/10/2013 16:44:30
De verdad necesito la ayuda no he podido y ya tengo que entregar este trabajo. Mari Carmen si me puedes ayudar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Como poner automáticamente las fechas de todos los domingos del año a una tabla php

Publicado por xve (5515 intervenciones) el 22/10/2013 18:13:34
Hola Yesenia, no deberias de tener mayor problema si utilizas un bucle por cada registros de la base de datos... nos puedes mostrar la parte del código que has realizado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como poner automáticamente las fechas de todos los domingos del año a una tabla php

Publicado por yesenia (3 intervenciones) el 22/10/2013 20:06:46
La verdad es que solo tengo dos interfaces:
1.- tiene la lista desplegable para seleccionar el año.

2.- La tabla para ver cada fecha pero lo único que pude hacer es que al seleccionar el año me direccióne a esa tabla, pero si selecciono cualquier fecha de todos modos me manda a la misma.

La verdad me cuesta la programación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como poner automáticamente las fechas de todos los domingos del año a una tabla php

Publicado por Mari Carmen (145 intervenciones) el 22/10/2013 20:47:19
A ver, he estado toda la tarde con esto y tampoco ha sido tan difícil. Por lo que veo usas un editor visual! Lo mejor para saber que estás haciendo es hacerlo todo a mano, como he hecho yo. Así encuentras errores y sabes que estas haciendo ya que no delegas en el TODO PODEROSO IDE toda la responsabilidad de la programación. Y cuando ya tengas soltura entonces meterte con IDE's.

Y ahora al ajo! te paso mi código completo. Tendrás que completar la parte de bases de datos y quitar las variables que no necesites.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<?php
$idioma="es";$titulo="Tabla";
 
//Funcion para tabular el codigo html
function tab($num)
{
    $tabstr="";
    for($i=0;$i<$num;$i++){
        $tabstr.="    ";
    }
    return $tabstr;
}
 
//Esto es lo que devolveria la BBDD si le hacemos un select y luego lo transformamos en array.
//Asumo que en el select elegirás solamente estos campos
//Asumo que harás la consulta con la restringcion de 1 año.
//Asumiendo esto la consulta select sera algo como:
// SELECT id,fecha,adultos,sucursal FROM nombre_tabla WHERE fecha LIKE 'año_de_consulta%'
//Un ejemplo de el año a 2012.
$Select_BBDD=array(
    array(
        'id' => "1",
        'fecha' => "2012-01-01",
        'adultos' => "352",
        'sucursal' => "prueba1"
        ),
    array(
        'id' => "2",
        'fecha' => "2012-01-08",
        'adultos' => "543",
        'sucursal' => "prueba1"
        ),
    array(
        'id' => "3",
        'fecha' => "2012-01-15",
        'adultos' => "593",
        'sucursal' => "prueba1"
        ),
    array(
        'id' => "7",
        'fecha' => "2012-01-15",
        'adultos' => "2",
        'sucursal' => "prueba2"
        ),
    array(
        'id' => 4,
        'fecha' => "2012-02-5",
        'adultos' => "352",
        'sucursal' => "prueba2"
        ),
    array(
        'id' => "5",
        'fecha' => "2012-02-12",
        'adultos' => "363",
        'sucursal' => "prueba2"
        ),
    array(
        'id' => "6",
        'fecha' => "2012-02-19",
        'adultos' => "400",
        'sucursal' => "prueba2"
        ),
    array(
        'id' => "8",
        'fecha' => "2012-03-12",
        'adultos' => "342",
        'sucursal' => "prueba3"
        )
);
 
//Transformará el mes de numero en Letras
$mes_str=array(
    "01" => "Enero", "02" => "Febrero", "03" => "Marzo",
    "04" => "Abril", "05" => "Mayo" , "06" => "Junio",
    "07" => "Julio", "08" => "Agosto", "09" => "Septiembre",
    "10" => "Octubre", "11" => "Noviembre", "12" => "Diciembre");
 
//Separa los valores iniciales de fecha en 3 variables distintas.
list($ano_tmp,$mes_tmp,$dia_tmp)=explode("-", $Select_BBDD[0]["fecha"]);
 
//Declaracion de variables
$num_total_fechas=0;
$num_meses_campos=array();
$num_meses_campos[$mes_tmp]=0;
$sucursal_tmp="";
$sucursales=array();
$fechas=array();
 
//Crea la estructura para hacer los bucles mas sencillos.
foreach($Select_BBDD as $row){
 
    //Separa los campos de fecha
    list($ano,$mes,$dia)=explode("-",$row["fecha"]);
    //Crea una cadena de caracteres de la fecha
    $fechastr="$dia/$mes/".substr($ano,-2);
 
    //Si la fecha no esta en el array de fechas entonces realiza el codigo
    if(!in_array($fechastr,$fechas)){
        //Añade la fecha que no existe a fechas
        $fechas[]=$fechastr;
        //Esta parte es para poder representar los meses y para ello
        // y contar el colspan de cada columna de mes.
        if($mes_tmp!=$mes){
            $num_meses_campos[$mes]=0;
            $mes_tmp=$mes;
        }
        $num_meses_campos[$mes]++;
 
        $num_total_fechas++;
    }
 
    $sucursal_tmp=$row["sucursal"];
    $sucursales[$sucursal_tmp][$fechastr]=$row["adultos"];
}
 
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<html xml:lang="<?=$idioma?>" xmlns="http://www.w3.org/1999/xhtml" lang="<?=$idioma?>">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
		<title><?=$titulo?></title>
	</head>
	<body>
		<div id="contenedor">
<table border="1">
 
    <thead>
        <tr>
            <th rowspan="3"> Vacio </th>
            <th colspan="<?=$num_total_fechas?>">Asistencia semanal Total</th>
        </tr>
        <tr>
<?php
        //Representamos todos los meses y el numero de dias que tiene cada mes
        foreach($num_meses_campos as $mes => $n_colspan){
            $strmes=$mes_str[$mes];
            echo tab(3)."<th colspan=\"$n_colspan\">$strmes</th>\n";
        }?>
        </tr>
 
        <tr>
<?php
        //Representamos cada fecha
        foreach($fechas as $fecha){
            echo tab(3)."<th>$fecha</th>\n";
        }?>
 
        </tr>
    </thead>
<?php
    //Representamos cada sucursal, que a su vez contiene información sobre la fecha
    // y sobre los adultos de cada sucursal.
    foreach($sucursales as $sucursal => $adultos)
    {
        echo tab(2)."<tr>\n";
        echo tab(3)."<th>$sucursal</th>\n";
 
        //Recorremos todas las fechas por cada sucursal y si existen entonces las
        //mostramos sino ponemos una celda vacia.
        foreach($fechas as $fecha)
        {
            if(array_key_exists($fecha, $adultos)){
                $adulto=$adultos[$fecha];
                echo tab(3)."<td>$adulto</td>\n";
            }else{
                echo tab(3)."<td></td>\n";
            }
        }
        echo tab(2)."</tr>\n";
 
    }
    ?>
</table>
		</div> <!-- /contenedor -->
	</body>
</html>

Espero que esté bien comentado. Si no entiendes algo avisa, estaré pendiente de ti.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar