SQL Abfrage mit php ausgeben --> falsche Ausgabe?

Chocobanana

Erfahrenes Mitglied
Hallo!

Bin gerade erst von ASP in Richtung PHP gewandert und schon mein erstes Problem:

Ich hab eine MySQL Datenbank:

Felder: Id (Autowert und Primärschlüssel)
Vorname
Nachname

Eingetragen ist ein Datensatz: ID=1, Vorname=Max Nachname=Mustermann

Nun möchte ich diesen Datensatz mit echo ausgeben. Ich habs so versucht:

PHP:
$connection=mysql_connect("localhost");
mysql_select_db("Test");
$abfrage="SELECT * FROM tblTest";
$ausgabe=mysql_query("$abfrage") or die (mysql_error());
list($Name)=mysql_fetch_row($ausgabe);
echo $ausgabe

Nun gibt mir dieser Code im Browser folgendes aus: Resource id #2

Die Verbindung zur DB steht, da ich vorher schon Daten mit php eingegeben habe und mit phpMyAdmin angeschaut habe.

Wo liegt denn hier der Fehler?

Greetz,....

PS: hab schon die Suche verwendet, aber da kann man nicht nach Begriffen unter 3 Buchstaben suchen. Und die Fragen bezüglich php Ausgabe haben mir nicht weitergeholfen.
 
Da ich nicht genau weiss, wie man mit list() umgeht :rolleyes: versuche mal folgendes:

PHP:
$ausgabe=mysql_query("$abfrage") or die (mysql_error()); 
//mysql_query() liefert einen result-Handler zurück den du in $ausgabe speicherst.
//Diesen result-Handler übergeben wir z.B. einer mysql_fetch_array Funktion

$ergebnis_array = mysql_fetch_array($ausgabe);

echo $ergebnis_array['Vorname']; //Gibt Max aus
echo $ergebnis_array['Nachname']; //Gibt Mustermann aus

Ich hoffe das hat geholfen ?
 
In $ausgabe steht richtigerweise Resource id #2.
Das ist die id auf deine Ergebnisrelation.

mit mysql_fetch_row(); bekommst du eine Zeile deines Ergebniss als array zurück.
bsp
$row=mysql_fetch_row($ausgabe);

möchtest du das ganze Ergebniss auswerten kannst du das in einer while schleife machen
PHP:
$connection=mysql_connect("localhost");
mysql_select_db("Test");
$abfrage="SELECT * FROM tblTest";
$ausgabe=mysql_query("$abfrage") or die (mysql_error());
while($row=mysql_fetch_row($ausgabe)){
echo $row[0]." ".$row[1]." ".$row[2]; // usw;  
}
 
hat super geklappt. Danke an euch.

Nur noch ne Frage: Haben die beiden Ausgabemöglichkeiten vor bzw. Nachteile, oder kann man sagen das die eine besser ist als die andere? Oder aber ist dafür immer das Ziel der Anwendung entscheidend?

Greetz,..
 
am schnellsten laut php manuall ist fetch_row.
bei fetch_array() bekommst du ohne angabe von MYSQL_NUM oder MYSQL_ASSOC ein array mit doppelden Einträgen.

hast du zb ein spalte names id in deiner DB hast du dann nach

$row=mysql_fetch_array($ausgabe);

die Möglichkeit über $row[0] oder eben $row["id"] zuzugreifen.
 
Zurück