Haumis wbb hilfe 
Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite
Galerie Datenbank Zum Portal

Startseite| Das Board| wbb2| wbblite| Wo finde ich was| Veränderungen| Grafik-Bereich-WBB2| Boardspiele| Vorstellungen| Allgemeines| Trainingscenter|
Haumis wbb hilfe » ...:::Trainingscenter-wbb2:::... » mysql » datenbank auslesen Teil 1 » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen datenbank auslesen Teil 1
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
haumi haumi ist männlich
Boardbetreiber

images/avatars/avatar-214.jpg
[meine Galerie]


Dabei seit: 06.06.2009
Beiträge: 3.441
Herkunft: NRW
Postid: 11435
datenbank auslesen Teil 1 Beitrag Nr.: 1     Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Bei einer SELECT abfrage ala
$abfrage = "SELECT * FROM christina";
liefert diese Abfrage alle Spalten und Zeilen der Tabelle als Ergebnistabelle.
Jedoch als verwertbaren Rückgabewert gibt es nicht die einzelnen Felder nebst Inhalten sondern nur einen Zeiger , die sogenannte result-id, auf den ersten Datensatz, der in Form eines arrays vorliegt.

Wie kommt man nun an diese Daten heran?

Es gibt verschiedene Möglichkeiten, und so fangen wir man an.

mysql_result()
Die Funktion "mysql_result()" mit den Argumenten result-id, Zeile der Ergebnistabelle, Spalte der Ergebnistabelle, liefert also immer je einen Tabelleneintrag, der sich ergibt aus der Ergebnistabelle, der Zeilennummer und der Spaltennummer.
Somit ergäbe der Ausdruck mysql_result($abfrage, 2, 1) aus der dritten Zeile den Inhalt der zweiten Spalte.
in $abfrage ist die result-id gespeichert, 2 ist die dritte Zeile und 1 die 2te Tabellenspalte (hier: name).

Sinn macht die Auswertung wieder nur, wenn wir eine Schleife verwenden.

Mit mysql_num_rows ($abfrage) erhalten wir die Anzahl der Zeilen der Ergebnistabelle.
Mit mysql_num_fields ($abfrage) erhalten wir die Anzahl der Spalten der Ergebnistabelle.

mit FOR($i=0, $i < $zeilen; $i++) { //zählen wir die Zeilen
mit $dsatz = $abfrage[$i]; //weisen wir der Variablen $dsatz die aktuelle Zeile zu
mit FOR($n=1;$n < $spalten; $n++) { //durchlaufen wir die Spalten
mit echo mysql_result($anz,$i,$n) ." - "; } // geben wir die aktuelle Tabellenspalte aus
mit } // schließen wir die äußere FOR-Schleife
mit echo "<br>"; // wechseln wir in die nächste Zeile
mit } // schließen wir die äußere FOR-Schleife

Die ganze php-Datei sieht wie folgt aus:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
<?php
require("./config.inc.php");

$ergebnis = "SELECT * FROM christina";
$anz = mysql_query($ergebnis);

//$erg = mysql_result($anz);
$zeilen = mysql_num_rows($anz);
$spalten = mysql_num_fields($anz); 

FOR($i=0; $i < $zeilen; $i++)  { 
$dsatz = mysql_result($anz,$i);
     FOR($n=1;$n < $spalten; $n++) {  
      echo mysql_result($anz,$i,$n) ." - ";
	 }
echo "<br>";
}
?>


mysql_fetch_row()
Eine weitere Mögichkeit an die Daten zu kommen bietet die Funktion: mysql_fetch_row().
Diese Funktion setz den Cursor ebenfalls auf die erste Zeile der Ergebnistabelle und rückt ihn bei jedem neuen Aufruf eine Zeile weiter.
der aktuelle Datensatz wird als array zurückgeliefert und wenn alle Datensätze durchlaufen sind gibt die Funktion false (falsch) zurück.
Da beim Aufruf der Zeiger sofort auf dem ersten Datensatz steht benötigt diese Funktion keine zusätzlichen Parameter sondern kommt mit der Ergebnisid aus.

$dsatz = mysql_fetch_row($abfrage);
echo $dsatz[1]; //liefert den Namen aus dem ersten Datensatz
echo $dsatz[2]; //liefert das Passwort aus dem ersten Datensatz
usw.

Auch hier muss man auf Schleifen zurückgreifen um alle Datensätze anzuzeigen.

Statt der for-Schleife nehmen wir hier die while-Schleife (solange wie noch...) und betten darin die foreach-Schleife ein.

mit while($dsatz) { // prüfen wir das Vorhandensein eines Datensatzes
mit echo "<br>"; //erzeugen wir einen Zeilenumbruch
mit foreach($dsatz as $feld) { // wird das array durchlaufen und das aktuelle Datensatzelement (in dsatz) wird in der Variablen $Feld gespeichert
mit echo $feld ." - "; // geben wir den Datensatz aus
mit } // schließen wir die foreach-Schleife
mit $dsatz = mysql_fetch_row($anz); // setzen wir den Datensatzzeiger eine Zeile weiter
mit } // schließen wir die while-Schleife

die ganze php-Datei sieht wie folgt aus:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
<?php
require("./config.inc.php");

$ergebnis = "SELECT * FROM christina";
$anz = mysql_query($ergebnis);

$dsatz = mysql_fetch_row($anz);

while($dsatz) { 
	echo "<br>";
	foreach($dsatz as $feld) {
		echo $feld ."  -  ";  
	}
	$dsatz = mysql_fetch_row($anz); 
}		
?>

Und hier das Ganze mal etwas aufbereitet:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
<?php
require("./config.inc.php");
$ausgabe = mysql_query("SELECT * FROM christina ORDER BY id"); //Setzt den Zeiger auf die Ergebnistabelle
//Beginn Überschriften
$spalten = mysql_num_fields($ausgabe); //ermittelt die Anzahl der Spalten
print("<table border=1>"); //Baut eine Tabelle auf
for($i=0; $i < $spalten; $i++){ 
	print("<th>");
print mysql_field_name($ausgabe, $i);
}
//Ende Überschriften

$dsatz = mysql_fetch_row($ausgabe);
while($dsatz) {  // prüft das Vorhandensein eines Datensatzes
print("<tr>");
	foreach($dsatz as $feld) { // das aktuelle Datensatzelement (in dsatz) wird in der Variablen $Feld gespeichert
			print("<td>");
		    print($feld);
	}
	$dsatz = mysql_fetch_row($ausgabe); // setzt den Datensatzzeiger eine Zeile weiter
}
print("</table>");
echo "fertig";
?>

und die Anzeige sieht so aus:




in Teil 2 lernen wir noch zwei weitere Möglichkeiten kennen

__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.

06.04.2012 11:19 haumi ist offline E-Mail an haumi senden Homepage von haumi Beiträge von haumi suchenNehmen Sie haumi in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Haumis wbb hilfe » ...:::Trainingscenter-wbb2:::... » mysql » datenbank auslesen Teil 1

Views heute: 26.547 | Views gestern: 27.012 | Views gesamt: 70.994.923
Powered by Burning Board 2.3.6 © 2001-2004 WoltLab GmbH
Am Netz seit dem 3.6.2009 - Powered by © haumis-Team
Style & Buttons © by FriendsbistroTeam
Boardregeln Impressum & Haftungsauschluss Datenschutzerklärung