| Formulare und PHP - Teil 1 (Grundlagen) - Aus der DB lesen und ausgeben |
Seite 3 von 4
Daten aus MySQL auslesen und ausgebenDamit das schreiben in eine DB auch Sinn macht brauchen wir natürlich auch einen Weg die Daten wieder auszugeben. Das ist ungleich einfacher als das hineinschreiben, weil die Eingaben nicht mehr geprüft und aufbereitet werden müssen. Zunächst mal der Code, dann die Erklärung...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Datensätze aus einer Datenbank auslesen und ausgeben</title> </head> <body> <?php $db_host = "localhost"; $db_user = "root"; $db_pass = ""; $db_name = "traumprojekt"; // Verbindung oeffnen und Datenbank ausweahlen $conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" ); if ($conID) { mysql_select_db( $db_name, $conID ); } // Anfrage zusammenstellen um die Datensaetze auszulesen $sql = "SELECT `vorname`, `geschlecht`, `alter`, IF(`fuehrerschein`=0, 'Nein', 'Ja') as fuehrerschein FROM `traumprojekt`"; // Anfrage an die DB schicken und die Rueckmeldung in eine Variable ablegen $abfrageergebnis = mysql_query( $sql, $conID ); // Ermitteln wie viele Datensaetzen gefunden wurden $anzahl = mysql_num_rows( $abfrageergebnis ); echo '<p>Es wurden <span class="hinweis">' .$anzahl. '</span> Datensätze gefunden!</p>'; // Tabelle erstellen fuer die Ausgabe echo '<table border="1">'; echo "<tr><th>Vorname</th><th>Geschlecht</th><th>Alter</th><th>Führerschein</th></tr>"; // Ab hier werden die Datensaetze zeilenweise ausgeben (auch fetchen genannt) while ($datensatz = mysql_fetch_array( $abfrageergebnis )) { // Jeder Datensatz entspricht einer Tabellenzeile echo "<tr>"; echo "<td>" .htmlspecialchars( $datensatz['vorname'] ). "</td>"; echo "<td>" .htmlspecialchars( $datensatz['geschlecht'] ). "</td>"; echo "<td>" .$datensatz['alter']. "</td>"; echo "<td>" .$datensatz['fuehrerschein']. "</td>"; echo "</tr>"; } // Tabelle schliessen echo "</table>"; ?> </body> </html> Zuerst wieder das obligatorische verbinden zum Datenbankserver und das auswählen der DB. Dann wird die Anfrage zusammengestellt... $sql = "SELECT `vorname`, `geschlecht`, `alter`, IF(`fuehrerschein`=0, 'Nein', 'Ja') as fuehrerschein FROM `traumprojekt`"; Für MySQL-Neulinge wird dieses IF vielleicht etwas verwirrend sein. Das muß es aber nicht, weil es ganz einfach zu verstehen ist. Wir erinnern uns an oben, das wir für "Führerschein vorhanden" eine 0 bzw 1 eingetragen haben. Da das aber weniger gut lesbar ist wandeln wir das in etwas um das man auch verstehen kann, nämlich Ja oder Nein. Die Zeile IF(`fuehrerschein`=0, 'Nein', 'Ja') as fuehrerschein macht also nichts anderes, als abzufragen ob im Feld "fuehrerschein" eine 1 oder eine 0 steht und liefert uns ein Ja oder Nein. Den Wert können wir in der Variable "fuehrerschein" (MySQL Alias as fuehrerschein) abrufen. $anzahl = mysql_num_rows( $abfrageergebnis ); ermitteln wir wie viele Zeilen wir aus der DB gelesen haben und geben das in der darauf folgenden Zeile per echo aus. Jetzt erzeugen wir einen Tabellenkopf und lassen uns fein säuberlich alle Datensätze tabellarisch ausgeben. Das geschieht mit... while ($datensatz = mysql_fetch_array( $abfrageergebnis )) { // Jeder Datensatz entspricht einer Tabellenzeile echo "<tr>"; echo "<td>" .htmlspecialchars( $datensatz['vorname'] ). "</td>"; echo "<td>" .htmlspecialchars( $datensatz['geschlecht'] ). "</td>"; echo "<td>" .$datensatz['alter']. "</td>"; echo "<td>" .$datensatz['fuehrerschein']. "</td>"; echo "</tr>"; } Die Feldnamen aus der DB entsprechen den Array-Schlüssel beim auslesen. (vergleiche mit der Abfrage oben, die identische Feldnamen selektiert hat) |