Ik heb de volgende query:

<?php
$HiTemp = mysql_query("SELECT * FROM weerdata WHERE Date='$date' ORDER BY HiTemp DESC, Time ASC LIMIT 1", $db);
if ($date) {
while ($HiTemp_result = mysql_fetch_array($HiTemp)){
echo "<td>". $HiTemp_result['HiTemp'] . "</td><td>" . $HiTemp_result['Time'] . "</td>";
}
}
else {
echo "$error";
}
?>

De query haalt uit mijn database van een bepaalde dag de HiTemp met de daarbij behorende Time. Deze Time (tijd) staat in de database als 00:00:00 (H, i, s), maar ik wil dat de echo geen seconden weergeeft, dus: 00:00 (H, i). Hoe doe ik dit?
SELECT *, DATE_FORMAT(blabla) AS korte_tijd FROM ..........
Het is gelukt! Ik heb de volgende php gebruikt:

<?php
$HiTemp = mysql_query("SELECT *, date_format(Time, '%H:%i') as shorttime FROM weerdata WHERE Date='$date' ORDER BY HiTemp DESC, Time ASC LIMIT 1", $db);
if ($date) {
while ($HiTemp_result = mysql_fetch_array($HiTemp)){
echo $HiTemp_result['HiTemp'] . "<br>" . $HiTemp_result['shorttime'];
}
}
else {
echo "$error";
}
?>

Tip: leer je aan om MySQL funkties in hoofdletters te schrijven. Dan is in je script meteen duidelijk dat het om een MySQL functie gaat.
En nog een tip!

Gebruik geen "SELECT *", maar "SELECT kolomnaam1, kolomnaam2" omdat dit sneller is. Verder voert de database met * als je niet alles nodig hebt ook nog eens overbodige acties uit, om alles te selecteren.
ik zou veldnamen altijd in kleine of hoofdletters doen. Dan krijg je minder fouten. Windows zou het zo vreten maar linux vindt het niet leuk als je ergens een hoofdletter mist.

Reageren