Tutorial - Wetterdaten und Datenbanken - Teil 4.2 - Abfragen mit PHP

Teil 4.2 - Abfragen mit PHP

Achtung: Neue und aktualisierte Versionen der Tutorials finden Sie hier:

http://www.pscl.ch


Um die Werte der Tabelle auf einer Webseite anzuzeigen, können wir html und php verwenden.


1. Zuerst mit der Datenbank verbinden (mysqli):


<?php

//db verbindung
$link = mysqli_connect("Hostname", "Username", "Password", "DBname");
(Mit Ihren Zugangsdaten ersetzen)



2. Die sql-Query:


Dann die sql-Abfrage in $query:
$query = "

SELECT datetime, temp
FROM wettertabelle
ORDER BY temp DESC
LIMIT 10

";



3. Die Ausgabe


Wir machen das Resultat in $result verfügbar:

$result = mysqli_query($link,$query);



Mit dieser while-Schlaufe werden dann alle Zeilen mit echo ausgegeben:

while($row = mysqli_fetch_array($result))
{

echo $row['temp'];

}



4. Resourcen freigeben


Zum Schluss die Ressourcen freigeben:

mysqli_free_result($result);

?>



4. Zusammenfassung:


<?php

//db verbindung
$link = mysqli_connect("Hostname", "Username", "Password", "DBname");

//db sql abfrage

$query = "
SELECT datetime, temp
FROM wettertabelle
ORDER BY temp DESC
LIMIT 10
";

//resultat verfügbar machen
$result = mysqli_query($link,$query);

//Zeilen ausgeben
while($row = mysqli_fetch_array($result))
  {
  echo $row['temp'];
  }


// ressourcen freigeben
mysqli_free_result($result);

?>


5. Ausgabe anpassen:


Die Ausgabe kann sehr vielfältig erfolgen. Um die Möglichkeiten aufzuzeigen, hier ein einige Beispiele:



5.1 Variablen Verbinden:


Um die Abfrageergebnisse übersichtlicher ausgeben zu können, erweitern wir das echo um Spaltennamen und einen Zeilenumbruch. Textelemente (z.B. "Datum/Zeit: ") und Variablen (z.B. $row['datetime']) werden mit einem Punkt (.) verbunden. Der Zeilenumbruch in html (<br>) sowie für den Quelltext (\n).

echo "Datum/Zeit: ".$row['datetime']." Temperatur: ".$row['temp']."<br>\n";



5.2 Beispiel mit Ausgabe mit einer html Tabelle:


//Tabelle öffnen
echo "<table border=\"1\"> \n";

//Überschriftenzeile ausgeben
echo "<td>Datum und Zeit</td><td>Temperatur</td>\n";


//Zeilen ausgeben
while($row = mysqli_fetch_array($result))
  {
  echo "<tr>\n";
  echo "<td>".$row['datetime']."</td>"."<td>".$row['temp']."</td>\n";
  echo "</tr>\n";
  }

//Tabelle schließen
echo "</table>\n";

Beachten Sie in Zeile 2 wie die Anführungszeichen mit \ maskiert werden müssen. Diese werden ansonsten nicht ausgegeben und brechen die Ausgabe vorzeitig ab.  "1" zu \"1\"




5.3 Einzelne Werte Darstellen:


Oft möchte man in einer bestehenden Webseite die aktuellen Werte darstellen. Zuerst passen wir die sql-Abfrage so an, dass jeweils nur der aktuellste ausgegeben wird :

$query = "

SELECT temp, hum, pressure
FROM wettertabelle
ORDER BY datetime DESC 
LIMIT 1

";


Wir möchten die Werte evtl. auch mehrmals auf der Seite einsetzen. Die Abfrage dabei jedesmal neu ausführen zu lassen, wäre nicht optimal. Wir werden also die Werte nicht sofort mit echo ausgeben, sonden in eine neue Variable überführen. Diese Variable können wir dann bequem überall auf der Seite ausgeben:

while($row = mysql_fetch_array($result))
{

$temperatur_aktuell = $row['temp'];
$luftfeuchte_aktuell = $row['hum'];
$luftdruck_aktuell = $row['pressure'];

}


Ausgegeben werden die Werte dann z.B. so:

Die aktuelle Temperatur: <?php echo $temperatur_aktuell; ?>


Unser php script erzeugt nun keine Ausgabe mehr. Es kann also in den Header der bestehenden Website eingefügt werden. Die Abfrage wird dann zu Beginn ausgeführt und die Daten stehen in den Variablen bereit.

Hier ein Besipiel mit html:

<html>
<head>


<?php

//db verbindung
$link = mysqli_connect("Hostname", "Username", "Password", "DBname");

//db sql abfrage
$query = "
SELECT temp, hum, pressure
FROM wettertabelle
ORDER BY temp DESC
LIMIT 10
";

//resultat verfügbar machen
$result = mysqli_query($link,$query);

//werte in variablen speichern
while($row = mysqli_fetch_array($result))
{

  $temperatur_aktuell = $row['temp'];
  $luftfeuchte_aktuell = $row['hum'];
  $luftdruck_aktuell = $row['pressure'];

}

// ressourcen freigeben
mysqli_free_result($result);

?>


<title>Unsere Wetterseite </title>

</head>

<body>

<h1>Willkommen auf unserer Wetterseite:</h1>

Die aktuelle Temperatur beträgt: <?php echo $temperatur_aktuell; ?> <br>

blabla...<br><br>
blablabla...<br><br><br><br>

Hier alle aktuellen Werte:<br>
<?php echo $temperatur_aktuell; ?><br>
<?php echo $luftfeuchte_aktuell; ?><br>
<?php echo $luftdruck_aktuell; ?><br>

</body>

</html>


Eine weitere Möglichkeit ist die Ausgabe der Daten mit einem Diagramm.
Siehe Tutorial: Diagramme mit amcharts


Keine Kommentare:

Kommentar veröffentlichen