Keine Ausgabe db abfrage

Dolphon

Erfahrenes Mitglied
Hi,

ich habe folgendes Problem.

der Code unten gibt mir einfach den Inhalt der db nicht aus. $row->name... und die anderen 2 Variablen werden nicht ausgegeben.
Der html teil wird ausgeben.
Der Query ist auch richtig.

Hier mal der code:

Code:
if ($_GET['id'])
     $query = "SELECT id,name,ort,location FROM disco WHERE location='".$_GET['id']."'";
 //$query = "SELECT id, name, ort FROM disco";

if(!($result = mysql_query($query))) 
      die(mysql_error()); 
  
echo"$query";

while($row = mysql_fetch_array($result)) 
{ 
  
echo"
          
            
<b>$row->name</b>
<b>$row->ort</b>
<b><a href=\"index.php?site=disco&id=$row->id\">[zum Testbericht...]</a></b>


";}
 
$row->fieldname entsteht durch den Befehl mysql_fetch_object().
Bei dem Befehl mysql_fetch_array() liegt ein assoziatives Array vor, also $row['fieldname'].
 
Besten Dank. Hatt jetzt geklappt.

Worin besteht den der genau unterschied der beiden ausgeben.

Ist eine besser als die andere?
 
Soweit ich weiß sind sie von der Funktionsweise vollkommen identisch.

mysql_fetch_array() hat noch den Vorteil, dass man wählen kann, ob man ein numerisches oder ein assoziatives Array haben will, oder beides...
Dazu ist die zweite optionale Kennung da:
MYSQL_NUM, MYSQL_ASSOC oder MYSQL_BOTH
Standardmäßig gibt er ein assoziatives Array zurück.

Alternativ kann man auch noch mysql_fetch_assoc benutzen, der direkt ein assoziatives Array zurückgibt. Letzendlich ist es, meiner Meinung nach, eine reine Geschmacksfrage.
 
Hallo!

mysql_fetch_array() ist bei weglassen des Ereignistyps identisch zum Ereignistyp MYSQL_BOTH.
$row=mysql_fetch_array($result) oder $row=mysql_fetch_array($result, MYSQL_BOTH) geben also beide z.b. $row[0] und $row['feldname'] zurück.
Der Unterschied ist allerdings der, dass $row[0] nicht die per auto_increment vergebene ID ausgibt.
Mit $row['feldname'] hingegen kann man sich auch die ID mit z.b. $row['id'] zurückgeben lassen.

Ich persönlich bevorzuge daher auch $row=mysql_fetch_array($result) in Verbindung mit $row['feldname'], da dieses einfacher zu merken ist, man auf alle Felder zugreifen kann und feldname irgendwie einfacher nachvollziehbar ist als irgend eine Nummer. ;)
Zu beachten ist allerdings dass feldname nicht doppelt vergeben ist, da sonst nur der letzte Wert im Array verfügbar ist.

Gruss Dr Dau
 
Zurück