Robii - Do 26.08.10 14:22
Titel: PHP - Tabelle auslesen
Guten Mittag,
ich habe ein Problem. Ich möchte per PHP alle Zeilen einer Tabelle aus meiner MySql-Datenbank auslesen und wieder geben, so zeilenweise.
Da ich mich mit PHP sehr sehr schlecht auskenne und nach längerem Google nichts gefunden habe hoffe ich hier auf Hilfe. Folgenden 'Code' habe
ich bis jetzt schon geschafft:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| <?php $Tabelle = $_GET['user']; $connection = mysql_connect(localhost , benutzer , passwort); mysql_select_db("docshare"); $sql = "SELECT Nummer,Name,DatumUhr,Notiz,Prio FROM $Tabelle LIMIT 1,1"; echo $sql; ?> |
Die Tabelle sieht so aus:
Nummer | Name | DatumUhr | Notiz | Prio
1 | Test | 01.01.10 | Bla | 1
2 | Bla | 02.02.10 | Bla | 2
..
Wobei ich die Spalte 'Nummer' als PrimärSchlüssel gewählt habe.
Welche Tabelle ( es gibt mehrere ) ich auslesen möchte, setze ich mit der Variable User im Link fest.
z.B.
http://www.xxxx./meinedatei.php?user=test
Als ausgabe stelle ich mir folgendes vor:
Nummer,Name,DatumUhr,Notiz,Prio ( von Zeile 1)
Nummer,Name,DatumUhr,Notiz,Prio ( von Zeile 2)
Ich hoffe ihr könnt mir helfen.
Lieben Gruß,
robii
Yogu - Do 26.08.10 18:17
Hallo,
für PHP kann ich neben den Schattenbaum-Tutorials, die von
JoelH verlinkt wurden, noch die Dokumentationsseite
PHP.net [
http://php.net] empfehlen. Rechts oben bei "search for" kannst du alle Funktionen nachschlagen.
Bei
mysql_select_db [
http://de3.php.net/manual/de/function.mysql-select-db.php] unter "Siehe auch" steht die Funktion
mysql_query [
http://php.net/mysql_query], die eine Abfrage ausführt. Ihr übergibst du einfach den SQL-String.
Um jetzt an die Zeilen des Ergebnisses zu kommen, brauchst du
mysql_fetch_array [
http://de.php.net/mysql_fetch_array], die das Ergebnis von
mysql_query als Parameter erwartet und entweder
false oder ein Array zurückgibt.
false bedeutet, dass keine weiteren Datensätze mehr vorhanden sind; das Array enthält sonst die Werte der Felder in der aktuellen Reihe.
In Code ausgedrückt:
PHP-Quelltext:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| <?php $Tabelle = $_GET['user']; $connection = mysql_connect(localhost , benutzer , passwort); mysql_select_db("docshare"); $sql = "SELECT Nummer,Name,DatumUhr,Notiz,Prio FROM $Tabelle"; echo $sql; $result = mysql_query($sql); while ($row = mysql_fetch_array($result)) { echo $row['Nummer']; echo ', '; echo $row['Name']; echo ''; ?> |
Die Schleife wird so lange ausgeführt, bis keine Datensätze mehr vorhanden sind. Ich habe übrigens das
LIMIT 1,1 entfernt, weil sonst nur die zweite Zeile zurückgegeben wird, anstatt aller Zeilen, wie du es willst.
Noch ein wichtiger Hinweis: Du erlaubst dem Benutzer mit deinem Code, Daten von einer beliebigen Tabelle herunterzuladen, und zwar von allen Datenbanken, auf die der Benutzer zugriff hat, den du an
mysql_connect übergibst. Willst du das wirklich? Außerdem könnte der Benutzer etwa folgende Eingabe machen:
Quelltext
1:
| Tabelle; DROP DATABASE Datenbank; |
Was dann passiert, kannst du dir wahrscheinlich denken ;) Um das zu verhindern, musst du die Eingabe prüfen und ggf.
escapen [
http://de.php.net/mysql_real_escape_string].
Grüße,
Yogu