Foros del Web » Programando para Internet » PHP »

php y consultas sql

Estas en el tema de php y consultas sql en el foro de PHP en Foros del Web. holas a todos, tengo un pequeño (grandisimo para mi) problemita..... hago una consulta a la base de datos (Postgre) para mostrar ciertos campos: Código PHP: ...
  #1 (permalink)  
Antiguo 21/06/2006, 07:51
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
php y consultas sql

holas a todos,

tengo un pequeño (grandisimo para mi) problemita.....

hago una consulta a la base de datos (Postgre) para mostrar ciertos campos:

Código PHP:
$query "SELECT maestro.cedula, maestro.fecha,maestro.actividad,maestro.descripcion, maestro.horas, maestro.contrato, usuario.nombre, usuario.apellido FROM maestro LEFT JOIN usuario ON maestro.cedula = usuario.cedula WHERE maestro.cedula = '$cedula' AND maestro.fecha BETWEEN '$fecha_del' AND '$fecha_al' GROUP BY  maestro.descripcion,maestro.actividad,maestro.contrato, maestro.fecha,maestro.horas, maestro.cedula, usuario.nombre, usuario.apellido order by maestro.descripcion,maestro.actividad,maestro.contrato";

$result pg_Exec($conn,$query);

if(
$row=pg_fetch_array($result))  

{

echo
"<TABLE width='500' BORDER=5 CELLPADDING=1 CELLSPACING=1 bordercolor='#003399'>";

echo
"  <tr><td><div align='center'><span class='style1'><strong>Contrato</strong></span></div></td><td><div align='center'><span class='style1'><strong>Actividad</strong></span></div></td><td><div align='center'><span class='style1'><strong>descripcion</strong></span></div></td><td><div align='center'><span class='style1'><strong>Fecha</strong></span></div></td><td><div align='center'><span class='style1'><strong>Horas</strong></span></div></td></tr>";

do
 {
 
printf("<tr><td><div align='center'>%s</div></td><td><div align='center'>%s</div></td><td><div align='center'>%s</div></td><td><div align='center'>%s</div></td><td><div align='center'>%d</div></td></tr>",$row["contrato"],$row["actividad"],$row["descripcion"], $row["fecha"], $row["horas"]); 

 }
 while(
$row=pg_fetch_array($result));
 
 echo
"  </TABLE>";

 }
 else 
{
echo 
"<div align='center'><h4 class='style5>'¡ No se ha encontrado ningún Contrato !</h4></div>"

eso me genera una tabla asi:(ejemplo)

Contrato- Actividad -descripcion ----Fecha ---------Horas
1590-------- 10--------- a----- 2006-06-19 ---------1
1590-------- 10--------- a----- 2006-06-20 ---------2
1590-------- 10--------- a----- 2006-06-21 ---------3
1590-------- 10--------- a----- 2006-06-22 ---------4
1590-------- 10--------- a----- 2006-06-23 ---------5
1590-------- 10--------- a----- 2006-06-24 ---------6
1590-------- 10--------- a----- 2006-06-25 ---------7
1590-------- 11--------- b----- 2006-06-19 ---------7
1590-------- 11--------- b----- 2006-06-20 ---------6
1590-------- 11--------- b----- 2006-06-21 ---------5
1590-------- 11--------- b----- 2006-06-22 ---------4
1590-------- 11--------- b----- 2006-06-23 ---------3
1590-------- 11--------- b----- 2006-06-24 ---------2
1590-------- 11--------- b----- 2006-06-25 ---------1
1596-------- 11--------- c----- 2006-06-19 ---------2
1596-------- 11--------- c----- 2006-06-20 ---------5
1596-------- 11--------- c----- 2006-06-21 ---------4
1596-------- 11--------- c----- 2006-06-22 ---------6
1596-------- 11--------- c----- 2006-06-23 ---------2
1596-------- 11--------- c----- 2006-06-24 ---------6
1596-------- 11--------- c----- 2006-06-25 ---------7


pero lo q yo quisiera es q la tabla me quedara algo asi:

contrato---actividad-descripcion----L---M---M---J---V---S---D
1590----------10------ a-----------1---2---3---4---5---6---7
1590----------11------ b-----------7---6---5---4---3---2---1
1596----------11------ c-----------2---5---4---6---2---6---7

es decir q cuando el contrato, la actividad y la descripcion sean la misma las horas de coloquen en la misma fila. SI ME EXPLICO? sera q me pueden ayudar. gracias... besos a todos
__________________
.-._.-. [email protected]_.-.
  #2 (permalink)  
Antiguo 21/06/2006, 08:19
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
es decir como imprimir los campos para q me aparescan asi como los mostre en la segunda parte...

por favor ayudenme.... gracias
__________________
.-._.-. [email protected]_.-.

Última edición por Mirovita; 21/06/2006 a las 08:48
  #3 (permalink)  
Antiguo 21/06/2006, 12:21
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 12 años
Puntos: 281
yo no me complicaria la vida y haria otro campo en la tabla para el dia cuando se inserte el record. pero debe haber alguna funcion que en el cual te diga cual dia de la semana es una fecha, pero no lo se. sorry...
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #4 (permalink)  
Antiguo 21/06/2006, 12:25
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
ok pero lo q quiero saber es como colocar la hora de martes en la misma fila q la del lunes tomando en cuenta q el contrato, descripcion y actividad son las mismas.. me explico?
__________________
.-._.-. [email protected]_.-.
  #5 (permalink)  
Antiguo 21/06/2006, 12:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 11 años, 6 meses
Puntos: 2122
No creo que lo puedas hacer desde un solo SELECT, yo creo que vas a tener que primero sacar los datos de la tabla y luego, usando PHP comparar y ordenar los datos para que te de el resultado que quieres.

La forma de imprimir creo yo es mas compleja como para que un QUERY SELECT te de el resultado.
  #6 (permalink)  
Antiguo 21/06/2006, 12:36
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
?????' me dejast peor...
__________________
.-._.-. [email protected]_.-.
  #7 (permalink)  
Antiguo 21/06/2006, 15:10
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
ya lo hice, fue un acosa toda extraña pero funciono, gracias a todos por su ayuda...
__________________
.-._.-. [email protected]_.-.
  #8 (permalink)  
Antiguo 21/06/2006, 17:32
 
Fecha de Ingreso: junio-2006
Ubicación: Lima - Perú
Mensajes: 3
Antigüedad: 11 años, 5 meses
Puntos: 0
Claro q se puede recuerda q todo se puede en esta vida. Nada es Imposoble
  #9 (permalink)  
Antiguo 21/06/2006, 18:22
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 12 años
Puntos: 281
como lo hiciste al final?? Yo me rompi la cabeza un rato tratando de resolverlo y no pude..
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #10 (permalink)  
Antiguo 22/06/2006, 06:30
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
fue mas con los sql q trabaje, me quedo algo asi la consulta:

Código PHP:
$query "SELECT contrato, actividad, descripcion, SUM(CASE fecha WHEN '$fecha_del' THEN horas ELSE 0 END) as lun, SUM(CASE fecha WHEN '$fecha_del2' THEN horas ELSE 0 END) as mar, SUM(CASE fecha WHEN '$fecha_del3' THEN horas ELSE 0 END) as mier, SUM(CASE fecha WHEN '$fecha_del4' THEN horas ELSE 0 END) as jue, SUM(CASE fecha WHEN '$fecha_del5' THEN horas ELSE 0 END) as vier, SUM(CASE fecha WHEN '$fecha_del6' THEN horas ELSE 0 END) as sab, SUM(CASE fecha WHEN '$fecha_del7' THEN horas ELSE 0 END) as dom FROM maestro GROUP BY descripcion, actividad, contrato order by contrato"
y luego imprimi los campos q queria como contrato, actividad, descripcion, y los dias... gracias por la colaboracion...
__________________
.-._.-. [email protected]_.-.
  #11 (permalink)  
Antiguo 22/06/2006, 09:20
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Excelente, te felicito.
  #12 (permalink)  
Antiguo 22/06/2006, 09:31
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 12 años
Puntos: 281
sip.. muy buena... saludos.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #13 (permalink)  
Antiguo 22/06/2006, 09:37
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
gracias chicos...
__________________
.-._.-. [email protected]_.-.
  #14 (permalink)  
Antiguo 22/06/2006, 09:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Buen aprovechamiento de los "condicionales" directamente en SQL .. (yo no había caido tampoco ..).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 14:04.