|
|
|
 |
 |
|
Daten per SELECT-Befehl mit
PHP/MySQL aus einer Datenbank auslesen
|
Daten werden bei MySQL mit dem
"Select"-Befehl ausgelesen. Der Befehl lässt viele Einfluss- und
Selektierungsmöglichkeiten zu, die Grundsyntax lautet jedoch so:
SELECT Tabellenspalte(n) FROM Tabelle WHERE
Bedingung ORDER BY Tabellenspalte;
Der erste Abschnitt ist verpflichtend, die Anweisungen WHERE und
ORDER BY sind jedoch optinal (und werden später noch erklärt).
Doch was bedeutet dies in der Praxis?
Nehmen wir an, wir
haben folgende Beispieltabelle mit dem namen "mitarbeiter":
id | vorname
| name
| gehalt 1
Ralf
Meier
1000 2
Sabine Wolf
1750 3
Karl
Günther
2000
Nehmen wir an, wir möchten einfach alle
Informationen auslesen um sie z.B. später auf einer Webseite anzeigen zu können. Wie
geht man vor? Dazu schauen wir uns am besten folgendes
Beispiel an (Wir gehen davon aus, dass eine
Verbindung bereits hergestellt ist):
<?php $id=array(); $name=array(); $vorname=array(); $gehalt=array();
$sql="SELECT * FROM mitarbeiter";
$ergebnis=mysql_query($sql,$verbindung) or die(mysql_error());
while ($row =
mysql_fetch_object($ergebnis)) {
array_push($id,$row->id); array_push($name,$row->name);
array_push($vorname,$row->vorname);
array_push($gehalt,row->gehalt); } ?>
Nun haben wir alle Informationen ausgelesen und in in
Arrays gespeichert und könnten sie mit den üblichen befehlen für
Textausgabe
und Arrays auch
auf der Webseite präsentieren. Der Befehl SELECT * sorgt hier dafür,
sämtliche Spalten auszulesen. Alternativ hätte man die Auswahl
natürlich begrenzen können, so hätte ein "SELECT id,name FROM
mitarbeiter" nur id und name ausgelesen. Doch wie kann man
z.b. nur Mitarbeiter auslesen lassen, deren Gehalt z.B. höher
als 1500€ ist? Hierfür wird der WHERE-Befehl gebraucht und die
Abfrage leicht angepast:
<?php [...] $sql="SELECT * FROM mitarbeiter WHERE gehalt>1500";
[...] ?>
Wie man sieht, es
ist im Grunde ganz einfach. Mit der Anweisung "ORDER BY" kann
man jetzt die Ausgabe auch noch sortieren lassen.
<?php [...] $sql="SELECT * FROM mitarbeiter
WHERE gehalt>1500 ORDER by gehalt ASC"; [...] ?>
Dies bewirkt, dass die Ausgabe nun
nach der Spalte Gehalt aufsteigend sortiert wird (ASC). Möchte
man eine absteigende Sortierung, genügt es, "ASC" einfach durch
"DESC" zu ersetzen. |
|
|
|
|
 |
|
|