.:: NAVIGATION ::.
 A Einleitung  

.:: INFO ::.

.:: user ::.
Username:
Password:
--> registrieren <--


765 registrierte Benutzer

SCHULE.AT

MySQL

PHP

Wie komme ich zu einem Lehrer-Account?

Zuerst registrieren, anschließend Mail an ingolacheiner.net mit Namen, gültiger e-mail-Adresse, Username, Passwort und Schulkennzahl

 

·:: Zurück  weiter ::·
.:: MB PHP und MySQL ::.

Im letzten Kapitel haben wir SQL-Befehle direkt in PHPmyAdmin eingegeben - sobald wir einen neuen Befehl eingegeben haben wurde die vorherige Tabelle wieder gelöscht.

Nun erstellen wir eine eigene Schnittstelle zur mySQL-Datenbank.

Verbindung zur Datenbank erstellen

Als erstes brauchen wir eine Verbindung zum MySQL-Datenbankserver. Dazu benötigst du die Funktion mysql_connect(), die eine Verbindung zum Datenbankserver erstellt und einen User anmeldet.

$db_verbindung = mysql_connect("server", "user", "pwd");

Die Funktion erwartet drei Parameter, die für die Verbindung notwendig sind. Der erste Parameter ist der Name des Servers, auf dem die MySQL-Datenbank installiert ist. Alternativ zu einem Hostnamen kann auch eine gültige IP-Adresse angegeben werden.

Ist die Verbindung erfolgreich, dann gibt die Funktion mysql_connect() einen Verbindungshandle auf die Datenbank zurück. War der Vorgang nicht erfolgreich, gibt die Funktion FALSE zurück.

<?php
$server 
"localhost"//oder 127.0.0.1
$user "root"//man sollte nur bei einer Testumgebung den user root verwenden!
$pass "****"//falls kein Passwort angegeben wurde bleibt diese Angabe leer: $pass = "";

$db_verbindung mysql_connect($server$user$pass);
if(
$db_verbindung) {echo "mySQL-Verbindung erfolgreich!";}
?>
                

Besser ist es jedoch, die Zugangsdaten einfach in eine zweite PHP-Datei auszulagern und diese mit dem include-Befehl wieder einzubinden:

<?php
$db_verbindung 
false;
inlcude("db_connect.php");
$db_verbindung mysql_connect($server$user$pass);
if(
$db_verbindung)
    {
    echo 
"<hr>mySQL-Verbindung erfolgreicht!</hr>;
    }
else
    {
    echo "
Verbindung fehlgeschlagen!";
    }
?>
                

Listing 1: verbindung.php

<?php
$host 
"localhost";
$user "root";
$pwd "dummies";
?>
                

Listing 2: db_connect.php

Um ganz sicherzugehen, solltest du aber dies include-Datei in ein Verzeichnis kopieren, das von außen über das Web nicht erreichbar ist.

Das Gegenstück zu mysql_connect() ist die Funktion mysql_close(), die die Verbindung zum Datenbankserver wieder schließt.

mysql_close($db_verbindung);

Die Datenbankverbindung nutzen

Die Datenbankverbindung ermöglicht uns nun auf alle Datenbanken für die wir die Berechtigung auf diesen Server besitzen zuzugreifen. Mit dieser Anweisung kannst du nun eine Datenbankanfrage (SQL) an eine Datenbank senden.

Funktion Beschreibung
mysql_query() Die Funktion sendet eine SQL-Anfrage an die aktuelle Datenbank
mysql_db_query() Die Funktion sendet eine SQL-Anfrage an eine Datenbank, die als Parameter übergeben wird.

$ergebnisrelation = mysql_query($query, $db_verbindung);

$query enthält die SQL-Anweisung und $db_verbindung enthält das Verbindungs-Handle zur Datenbank.

Anweisungen wie INSERT, UPDATE oder DELETE geben TRUE zurück, wenn der Zugriff erfolgreich war.

<?php
inlcude
("db_connect.php");
$db_verbindung mysql_connect($host$user$pass);
if(
$db_verbindung)
    {
    echo 
"<b>mySQL-Verbindung hergestellt!</b>;
    }

$query = "
SELECT FROM db_kursanmeldung.tbl_kurse";

$ergebnisrelation = myssql_query($query, $db_verbindung);
if ($ergebnisrelation) {echo "
SQL-Anweisung erfolgreich ausgeführt!";}

?>
                

Übung MB 1

Erstelle oben dargestellte Connection. Was wird ausgegeben?


Sobald die SQL-Anweisung eine SELECT-Anfrage ist, wird das Ergebnis als eine Tabelle im Speicher abgelegt. Das heißt diese Tabelle "befindet" sich in der Variable $ergebnisrelation.

Auswertung von Ergebnisrelationen im Speicher

Um diese Daten aus der Variablen auslesen zu können gibt es mehrere Möglichkeiten:

Funktion Beschreibung
mysql_fetch_row() Holt einen Datensatz aus der Ergebnisliste im Speicher als nummerisches Array.
mysql_fetch_array() Holt einen Datensatz aus der Ergebnisliste im Speicher als assoziatives Array und nummerisches Array.
mysql_fetch_assoc() Holt einen Datensatz aus der Ergebnisliste im Speicher nur als assoziatives Array
mysql_result() gibt den Inhalt eines Feldes aus der Ergebnisliste zurück
mysql_affected_rows() gibt die Anzahl der von der letzten Operation betroffenen Reihen zurück.
mysql_free_result() Gibt den Speicher der Ergebnisliste frei

Die drei wichtigsten Funktionen im Umgang mit Ergebnislisten im Speicher sind die Funktionen mysql_fetch_row(), mysql_fetch_array() und mysql_fetch_assoc(). Alle drei holen eine Reihe (Datensatz) (nicht Spalte!) der Ergebnisliste aus dem Speicher. Der erste Aufruf gibt die erste Reihe zurück, der zweite Aufruf die zweite Reihe und so weiter ...

Die Funktion mysql_fetch_row() ist die einfachste der drei Möglichkeiten. Sie erwartet als einzigen Parameter die Variable die die Ergebnisrelation speichert und gibt ein nummerisches Array des aktuellen Datensatzes zurück.

$liste = mysql_fetch_row($ergebnisrelation);
echo $liste[1];

Um jetzt alle Zeilen der Ergebnisrelation auszugeben bietet sich natürlich eine Schleife an die uns die Arbeit abnimmt.

<?php
$server 
"localhost";
$user "root";
$pass "****";
$db "db_kursanmeldung";
$db_verbindung mysql_connect($host$user$pass);
mysql_select_db($db$dbh); //mittels mysql_selct_db kann eine Datenbank ausgewählt werden

$query "SELECT * FROM tbl_user";
$ergebnisrelation myssql_query($query$db_verbindung);

echo 
"<table border=1>";
while (
$i mysql_fetch_assoc($ergebnisrelation)) 
//solange etwas in der Variable $ergebnisrelation steht wird
//ein Datensatz nach dem anderen ausgelesen.
    

    echo 
"<tr>";
    foreach (
$i as $var//damit Lesen wir nun die einzelnen Felder des Arrays aus
        
{
        echo 
"<td>$var</td>";
        }
    echo 
"</tr>";
    } 
echo 
"</table>";
?>
                


Übung MB 2

1. Erstelle eine Liste aller User.

2. Erstelle eine Liste aller Kurse, sortiert nach dem Beginndatum.

Jetzt wirds schwierig:
Hinweis: Wenn du noch nicht sehr geübt in SQL bist und dich diese Anweisungen überfordern: Erstelle doch die gleiche Datenbank in ACCESS, erstelle mithilfe der Entwurfsansicht die Abfragen und kopiere die SQL-Anweisung in dein PHP-Skript.

3. Erstelle eine Liste, in der alle Kurse des Monats Oktober 04 angezeigt werden. Für jeden Kurs sollen die angemeldeten User gezeigt werden.

 



·:: Zurück  weiter ::·



© 2005 unter OPL
ingolacheiner.net