He tropezado con un problema que pensé que sería fácil de resolver, pero que parece estar volviéndome loco. Por lo tanto, estoy tratando de ordenar algunos registros MySQL por tiempo, y luego ordenarlos por fecha. Por ejemplo, aquí está mi datos MySQL:PHP/MySQL: ordenado por fecha, por fecha
+----+------------+----------+---------------------------+--------+
| id | date | time | entry | status |
+----+------------+----------+---------------------------+--------+
| 21 | 2011-10-05 | 09:42:06 | All systems online. | 1 |
| 22 | 2011-10-05 | 09:43:09 | Maintenance starting. | 2 |
| 23 | 2011-10-04 | 08:42:06 | Systems online and ready. | 1 |
| 24 | 2011-10-05 | 09:44:30 | Systems are offline. | 0 |
+----+------------+----------+---------------------------+--------+
Por lo tanto, la consulta utilizo para tener todo ordenado es:
SELECT * FROM status order by date ASC;
que da los siguientes resultados:
+----+------------+----------+---------------------------+--------+
| id | date | time | entry | status |
+----+------------+----------+---------------------------+--------+
| 21 | 2011-10-05 | 09:42:06 | All systems online. | 1 |
| 22 | 2011-10-05 | 09:43:09 | Maintenance starting. | 2 |
| 24 | 2011-10-05 | 09:44:30 | Systems are offline. | 0 |
| 23 | 2011-10-04 | 08:42:06 | Systems online and ready. | 1 |
+----+------------+----------+---------------------------+--------+
La salida de PHP es el problema. Por lo tanto, la salida en este momento es:
4 de octubre de, 2011
- sistemas en línea y listo. [08:42]
5 de octubre de, 2011
Todos los sistemas en línea. [09:42 AM]
Mantenimiento a partir. [09:43 AM]
Los sistemas están desconectados. [09:44]
lo que quiero que la salida sea:
de octubre de 5, 2011 - Los sistemas están fuera de línea. [09:44 AM]
Mantenimiento de inicio. [09:43 AM]
Todos los sistemas en línea. [09:42]
4 de octubre de, 2011
- sistemas en línea y listo. [08:42 AM]
Básicamente, estoy queriendo todo agrupado por fecha (lo último primero) y quiero la hora más reciente en la parte superior, no en la inferior.
Aquí está mi código PHP:
function getUpdates() {
global $db;
$updchk = "";
$entries = $db->GetAll("SELECT * FROM status order by date DESC;");
if (!$entries) { ?>
<p>No entries in the database, yet.</p>
<?php } else
foreach ($entries as $entry) {
if (ConvertDate($entry['date']) != $updchk) { ?>
<h4><?php echo ConvertDate($entry['date']); ?></h4>
<p><?php echo $entry['entry']; ?><span class="timestamp"> [<?php echo strftime('%I:%M %p', strtotime($entry['time'])); ?>]</span></p>
<?php $updchk = ConvertDate($entry['date']); ?>
<?php } else { ?>
<p><?php echo $entry['entry']; ?><span class="timestamp"> [<?php echo strftime('%I:%M %p', strtotime($entry['time'])); ?>]</span></p>
<?php }
} ?>
<?php } ?>
se aprecia ninguna ayuda.
Gracias!
Wow, eso fue fácil. – drewrockshard
+1 para su velocidad! ;) – JellyBelly