![]() |
Ayuda con Select Problema con Select Estas son las tablas: TAviso IdAlerta - Fecha - Hora - IdOcurrencia - Parcial 1 2006-03-12 13:23 2 N TSeleccion IdAlerta - IdCiudadAlerta 1 1 TAvisoOcurrencia IdOcurrencia - DescOcurrencia 1 Tormentas 2 Lluvias TAvisoCiudad IdCiudadAlerta - NomCiudad 1 La Plata 2 Chascomus Mediante un formulario, selecciono las ciudades de la tabla TAvisoCiudad y tambien selecciono la Ocurrencia de la tabla Tavisoocurrencia. Estos se insertan en las tablas TAviso, y en Tavisoseleccion. Hasta ahi anda todo perfecto, lo que no logro hacer es mostrarlo mediante la generacion de un archivo PHP. el archivo php, que se genera tendria que ser algo asi FECHA Y HORA DE EMISION : $fecha - $hora VALIDEZ HASTA : $horamastres POR OCURRENCIA DE: $ocurrencia AREA AFECTADA DELIMITADA POR : $ciudades Necesito que me seleccione los avisos que no superen las 3 horas desde que se graban en la base creo la variable //hora Actual $actual = date ("H:i",time()-10800); // hora Actual + 3 horas $actualmastres= date ("H:i",time()); Tengo esta idea, $consulta = "SELECT a.IdAlerta, a.Fecha, a.Hora, a.IdOcurrencia, a.Parcial FROM TAviso a, TAvisoSeleccion b WHERE a.IdAlerta = b.IdAlerta and a.Hora<'$actualmastres'"; $resaviso = mysql_query($consulta,$conex); if ($resaviso) { $Num_filas = mysql_num_rows($resaviso); $Num_campos = mysql_num_fields($resaviso); y mi problema es como relaciono estos campos, con las tablas TAvisoOcurrencia y TAvisoCiudad ?? Tengo que haces otros select, o en un solo select puedo traer todos los datos?? Alguna ayuda, gracias.. |
puedes hacerlo en un solo select, seria algo asi: Código PHP: |
Problema con Select Perfecto, este es el archivo que se genera .php pero tengo una duda al ejecutar la consulta, me trae una fila, por cada ciudad seleccionada ej. Cantidad de filas: 3 ------------------------------------------ FECHA Y HORA DE EMISION 2006-02-15 12:43:00 HOA POR OCURRENCIA DE:Lluvias Intensas con Ráfagas AREA AFECTADA DELIMITADA POR : 25 de Mayo ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- FECHA Y HORA DE EMISION 2006-02-15 12:43:00 HOA POR OCURRENCIA DE:Lluvias Intensas con Ráfagas AREA AFECTADA DELIMITADA POR : 9 de Julio ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- FECHA Y HORA DE EMISION 2006-02-15 12:43:00 HOA POR OCURRENCIA DE:Lluvias Intensas con Ráfagas AREA AFECTADA DELIMITADA POR : Acebal ------------------------------------------ yo lo que quiero es que me traiga 1 solo registro, dependiendo la cantidad de ciudades elegidas, que me muestre 1 registro con x cantidad de ciudades dependiendo de la hora.. por ejemplo -------------------------------------------------- FECHA Y HORA DE EMISION 2006-02-15 12:43:00 HOA POR OCURRENCIA DE:Lluvias Intensas con Ráfagas AREA AFECTADA DELIMITADA POR : 25 de mayo,9 de Julio, Acebal. --------------------------------------------------- FECHA Y HORA DE EMISION 2006-02-15 13:00:00 HOA POR OCURRENCIA DE:Lluvias Intensas con Ráfagas AREA AFECTADA DELIMITADA POR : Rawson --------------------------------------------------- $consulta = "SELECT * FROM TAviso a INNER JOIN (TAvisoSeleccion b, TAvisoOcurrencia c,TAvisoCiudad d) ON (a.IdAlerta = b.IdAlerta AND a.IdOcurrencia=c.IdOcurrencia AND d.IdCiudadAlerta = b.IdCiudadAlerta) WHERE a.Hora<'$actualmastres'"; $resaviso = mysql_query($consulta,$conex); if ($resaviso) { $Num_filas = mysql_num_rows($resaviso); $Num_campos = mysql_num_fields($resaviso); echo "Cantidad de filas: ".$Num_filas."<br>"; //echo "Cantidad de Campos: ".$Num_campos."<br>"; while ($fila = mysql_fetch_array($resaviso)) { ?> <table width='85%' border='1'> <tr> <td><div align='center'><strong>FECHA Y HORA DE EMISION</strong></div></td> <td><div align='center'><strong>VALIDEZ HASTA</strong></div></td> </tr> <tr> <td><div align='center'><? echo $fila['Fecha']; ?></div></td> <td> TRES (3) HORAS. posteriores a la emision</td> </tr> <tr> <td><div align='center'><? echo $fila['Hora']; ?> HOA</div></td> <td> </td> </tr> </table> </td> </tr> <tr> <td> </td> </tr> <tr> <td> </td> </tr> <tr> <td><div align='left'><b>POR OCURRENCIA DE:</b><? echo $fila['DescOcurrencia']; ?></div></td> <td> </td> </tr> <tr> <td> </td> </tr> <tr> <td> </td> </tr> <tr> <td><div align='left'><b>AREA AFECTADA DELIMITADA POR :</b> <? echo $fila['NomCiudad']; ?> </div></td><td> </td> </tr> <tr> <td> </td> </tr> <tr> <td><p><b>---------------------------------------------------------------------------------------------------------------------------------------------------------------</b>------------------------- </p> </td> </tr> <tr> <td> </td> </tr> </table> <? } //cierra while } //cierra if otra pregunta ....y solo quiero que me muestre las del dia de hoy.. pero que pasa si se genera un aviso a las 23:00 ?? se entiende?? |
para obtener cuantos por hora, debes usar funciones como COUNT() y tambien la sentencia GROUP BY, seria algo mas o menos asi: Código PHP: P.D: cuando pongas codigo ponlo con tags de php ya que asi ayuda a entender |
Ayuda con Select me he expresado mal, lo que no se es que cuando el campo Hora, supere las 3 horas (por ej. se graba un registro con las 12:00..) y cuando son las 15:00 horas no lo muestre mas. otro tema: estuve viendo la sentencia Group By, pero no quiero agruparlo por hora...sino que por registro me muestre fecha, hora, ocurrencia, areas no quiero que me separe 1 registro por area...sino que si hay varias areas me las ponga en el mismo registro. creo que el problema es que al hacer el<?php while ($fila = mysql_fetch_array($resaviso)) ?> va a recorrer la tabla tavisoseleccion y me va generando de a 1 registro por area , ya que se genera tantos IdAlertas como ciudades sean elegidas. estoy en lo correcto?? |
| La zona horaria es GMT -6. Ahora son las 10:03. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.