# SQL Abfrage mit php ausgeben --> falsche Ausgabe?



## Chocobanana (10. Dezember 2003)

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:


```
$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.


----------



## Tim C. (10. Dezember 2003)

Da ich nicht genau weiss, wie man mit list() umgeht  versuche mal folgendes:


```
$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 ?


----------



## DerBär (10. Dezember 2003)

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 

```
$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;  
}
```


----------



## Chocobanana (10. Dezember 2003)

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,..


----------



## DerBär (10. Dezember 2003)

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.


----------

