Daten aus einer MySql Datenbank auslesen

Sie haben momentan die Daten in der Datenbank, wie können Sie die nun auslesen lassen über den Browser?

In diesem Tutorial ist die Tabelle so aufgebaut und die Tabelle heißt 'ehl_tutorial'

Field | Type | Null | Key | Default | Extra

id | INT | not null | pri | - | Auto Increment
name | VARCHAR (50) | - | - | - | -
emaile | VARCHAR (50) | - | - | - | -
homepage | VARCHAR (200) | - | - | - | -

Das ist die grobe Tabelle, der Inhalt würde jetzt noch einzeln eingefügt werden. Und damit der Inhalt nicht in der Tabelle verschimmelt muss er angezeigt werden. Als Beispiel zeigt es nur alle Einträge die den Namen Mustermann haben.


<html>
<head><title>EHL Tutorial</title></head>
<body bgcolor="#FFFFFF">
<?
## Hier werden die Daten eingetragen
$DBhost = "der Host wo die MySql Datenbank liegt [Normalerweise Localhost]";
$DBuser = "der Username von der MySql Datenbank";
$DBpass = "das Passwort";
$DBName = "der Name der MySql Datenbank";
$table = "ehl_tutorial";

## Hier wird zu der Datenbank verbunden
mysql_connect($DBhost,$DBuser,$DBpass) or die("Es konnte keine Verbindung hergestellt werden!");
@mysql_select_db("$DBName") or die("Es konnte nicht $DBName ausgewät werden"); $sqlquery = "SELECT * FROM $table WHERE name = 'Mustermann'";
$result = mysql_query($sqlquery);
$number = mysql_numrows($result);

$i = 0;

## Wenn nichts gefunden wurde (Dann $number unter 1, weil $i gleich 0), es wurde mit dem Roten Befehl die Einträge gezählt.
if ($number < 1) {
print "<CENTER>

Es wurde nichts gefunden</CENTER>";
}
## Ansonsten wird in einer Schleife die Ergebnisse angezeigt solange es mehr als $i ist
else {
while ($number > $i) {
$name = mysql_result($result,$i,"name");
$email = mysql_result($result,$i,"email");
$homepage = mysql_result($result,$i,"homepage");
print "<p><b>Name:</b> $name<br><b>E-Mail:</b>
$email<br><b>Homepage:</b>
$homepage
";
## mit jedem Eintrag steigt $i damit die Schleife ein Ende hat
$i++;
}
}
?>
</body></html>


Wollen Sie nicht alle Ergibnisse anzeigen lassen? Sondern nur bestimmte, dann können Sie das noch in $sqlquery erweitern...

$sqlquery = "SELECT * FROM $table LIMIT 5,10";

Das obere würde nur die Einträge 6-15 anzeigen.

$sqlquery = "SELECT * FROM $table LIMIT 5";

Und das würde nur 5 Ergebnisse Anzeigen lassen.
Das war es. Sollte es noch Probleme geben, dann Fragen Sie mich einfach.

Kommentare

blackfeet
blackfeet am Sonntag, 24. Juli 2005 um 22:48

Eine Prinzipielle frage, hast du PHP aus dem openbook auf gallileocomputing gelernt? Ich weiß dass dort diese methode zum auslesen der Daten verwendet wird, prinzipiell auch ok, aber viel zu umständlich.

$query = mysql_query("...");
while($datensatz = mysql_fetch_array($query)){
echo "Name: ".$datensatz['name'];
}

Das reicht zum auslesen der daten auch schon aus.
Natürlich ist dann $datensatz['email'] usw. auch vorhanden.

unkie
unkie am Montag, 25. Juli 2005 um 15:00

blackfeet es ist besser zu machen
$query = "SELECT FROM ...";
$result = mysql_query($query);

Und dann die Whileschleife!
Ist einfach Übersichtlicher!

blackfeet
blackfeet am Montag, 25. Juli 2005 um 21:12

Find ich nicht unbedingt, bei so kurzen SELECT's oder so ist das unproblematisch. Außerdem wird unnötiger Speicher belegt, was zwar bei so einem kleinen String unwesentlich ist.

Letztendlich ist das geschmacksache und würd ich nicht als besser oder schlechter einstufen.