Autor Beitrag
Robii
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Do 26.08.10 14:22 
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:

ausblenden 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. 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
JoelH
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 806
Erhaltene Danke: 17

Win10
Delphi Alexandria 11.2 Patch 1
BeitragVerfasst: Do 26.08.10 14:43 

_________________
mfg. Joel
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Do 26.08.10 18:17 
Hallo,

für PHP kann ich neben den Schattenbaum-Tutorials, die von user profile iconJoelH verlinkt wurden, noch die Dokumentationsseite PHP.net empfehlen. Rechts oben bei "search for" kannst du alle Funktionen nachschlagen.

Bei mysql_select_db unter "Siehe auch" steht die Funktion 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, 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:
ausblenden 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:

ausblenden 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.

Grüße,
Yogu