Informatik :: PHP + MySQL :: PHP-Zugriffe auf Datenbank
Willst du auf einen MySQL-Server mit PHP zugreifen, benutzt du folgenden Befehl:
Allgemein
<? $link=mysql_connect("$host:port","$username","$password"); ?>
Beispieldatenbank
<? $link=mysql_connect("lamp:3306","meinelt","123"); ?>
War die Verbindung erfolgreich, gibt PHP einen sogenannten "link identifier" zurück,
der bei den folgenden Operationen mit der Datenbank zu übergeben ist.
Willst du nun auf eine konkrete Datenbank mit PHP zugreifen, benutzt du folgenden Befehl:
Allgemein
<? mysql_select($datenbankname,$link); ?>
Beispieldatenbank
<? mysql_select("wb",$link); ?>
Allgemein
<? $res=mysql_db_query($datenbankname,$sql_befehl); ?>
Beispieldatenbank
<? $res=mysql_db_query("wb","select * from personal"); ?>
Allgemein
<? if (!$res=mysql_db_query($datenbankname,$sql_befehl)) { echo mysql_error($link); } ?>
Beispieldatenbank
<? if (!$res=mysql_db_query($wb,"insert teilnehmer values (8,110,'ja')"); echo mysql_error($link); } ?>
Allgemein
<? if ($res=mysql_db_query($datenbankname,$sql_befehl)) { echo "Textmeldung"; } ?>
Beispieldatenbank
<? if ($res=mysql_db_query($wb,"delete from personal where personalnr=1002"); echo "Der Datensatz wurde gelöscht!"; } ?>
Das Ergebnis jeder Abfrage ist eine Tabelle. In der ersten Zeile sollen die Feldnamen stehen in allen weiteren die Datensätze, die selektiert wurden.
Desweiteren empfiehlt sich aus Übersichtlichkeitsgründen, die Hintergrundfarbe der Zeilen alternierend zu ändern.
Die folgende Funktion tab_out($result) realisiert all diese Forderungen.
function tab_out($result) { $anz=mysql_num_fields($result); //Spaltenanzahl=Anzahl der Felder echo "<table border=0 cellpadding='2' cellspacing='2'>"; echo "<tr bgcolor=#CFCFCF>"; for ($i=0;$i<$anz;$i++) { echo "<th><font color=#0000FF>"; echo mysql_field_name($result,$i); //Feldnamen (Attributnamen) schreiben echo "</font>"; } echo "</tr>"; $num = mysql_num_rows($result); //Zeilenanzahl=Anzahl der gefundenen Datensätze for ($j = 0; $j < $num; $j++) { if ($j%2==1){$farbe='#DFDFDF';} //Hintergrundfarbe der ungeraden Zeilen else{$farbe='#EFEFEF';} //Hintergrundfarbe der geraden Zeilen $row = mysql_fetch_array($result); //Zeilen-Array=Attributwerte aller Datensätze echo "<tr bgcolor='$farbe'>"; for ($k=0;$k<$anz;$k++) { $fn=mysql_field_name($result,$k); echo " <td><font size=2> $row[$fn] </font></td> " ; //Datensatz schreiben } echo "</tr>"; } echo "</table>"; }
Der Funktion tab_out($result) muss bei ihrem Aufruf ein Parameter übergeben werden.
Dieser Parameter ist der Rückgabewert der MySQL-Funktion mysql_db_query()
Beispieldatenbank
<? $res=mysql_db_query($wb,"select Name Vorname from personal where Geschlecht='W'"); tab_out($res); ?>
<? mysql_close($link); ?>
Für die folgenden Aufgaben benötigst du auf localhost eine Datenbank mit einer Tabelle.
Gehe dazu wie folgt vor:
Aufgabe 1
Mittels PHP-Datei sollen alle Datensätze der Tabelle test1.persdat angezeigt werden.
Speichere dazu die Datei 01mysql.txt als PHP-Datei in deinen Ordner mysql.
Öffne diese Datei mit einem Editor und ergänze den Quellcode!
Aufgabe 2
Die Ausgabe der Daten soll verbessert werden.
Speichere dazu zunächst die PHP-Dateien verbind.php und funk.php in dein mysql-Verzeichnis!
Beide Dateien enthalten PHP-Anweisungen bzw. Funktionen, die sowohl für die richtige Verbindung zur Datenbasis bzw. für eine bessere Ausgabe der Daten in Tabellenform dienen. Um auf diese Dateien zuzugreifen, werden sie zu Beginn in die neue PHP Datei mittels include-Anweisung eingebunden.
Speichere nun die Datei 02mysql.txt als PHP-Datei in deinen Ordner mysql.
Öffne diese Datei mit einem Editor und ergänze den Quellcode!
Aufgabe 3
In die Tabelle persdat soll nun ein neuer Datensatz mit deinem Vor- und Zunamen aber noch ohne Geburtsdatum eingefügt werden.
Speichere dazu die Datei 03mysql.txt als PHP-Datei in deinen Ordner mysql.
Öffne diese Datei mit einem Editor und ergänze den Quellcode!
Aufgabe 4
Mit Absicht enthielt der neue Datensatz mit deinem Vor- und Zunamen noch nicht dein Geburtsdatum.
Dies soll jetzt geändert werden.
Speichere dazu die Datei 04mysql.txt als PHP-Datei in deinen Ordner mysql.
Öffne diese Datei mit einem Editor und ergänze den Quellcode!
Aufgabe 5
Zum Schluss soll der Datensatz mit deinem Vor- und Zunamen und deinem Geburtsdatum wieder gelöscht werden.
Speichere dazu die Datei 05mysql.txt als PHP-Datei in deinen Ordner mysql.
Öffne diese Datei mit einem Editor und ergänze den Quellcode!