[PHP/MYSQL]fetch_array fehler

gasser87

Ensign
Registriert
März 2005
Beiträge
146
Hallo,
ich habe zuerst eine PostgreSql Datenbank erstellt und mit PHP ein Frontend dazu gemacht. Da funzt auch alles, aber nun muss ich alles auf eine MYSQL Datenbank bringen und da beginnen die Probleme.

Mien Problem ist dass das pg_fetch_array drei Parameter übergeben kann das mysql_fetch_array aber nicht. Ich erstelle nähmlich eine dynamische Tabelle mit 2 for-Schleifen und da benötige ich genau diesen dritten Parameter. Gibt es einen php Befehl mit dem ich das machen kann?
Hier der Code:

$inventarSql = mysql_query ("Select * from inventar order by laenge asc");
$inventarZeilen = mysql_num_rows($inventarSql);

for ($i = 0; $i < $inventarZeilen; $i ++)
{
echo "<tr>";
for($z = 1; $z < $inventarSql; $z++)
{
$inventarArray = mysql_fetch_array($inventarSql, $i, MYSQL_BOTH);
echo "<td>".$inventarArray[$z]."</td>";
}
echo "</tr>";
}

Danke
Tom
 
Hallo,

so wie das aussieht willst du mit dem dritten Parameter angeben, dass dir ein assoziatives Array zurückgegeben wird.
Wenn das so ist, sollte dir der Befehl mysql_fetch_assoc() helfen.

Gruß Tobi
 
Hallo,

nein ich meinte mit meiner Beschreibung nicht den dritten Parameter sondern an dem zweiten, also das "$i". Das zeigt mir nähmlich die Zeilennummer in der Tabelle an.

gruß
Tom
 
Was sind das für Abbruchkriterien in der zweiten geschlossenen Schleife: $inventarSql. Ist ja wohl kein Integer, oder?

Lass die Zählvariable als Argument mal weg. Es wird ja hier wie bei der Zählervariable i bei 0 angefangen.
 
Mit $inventarSql bekomme ich die Anzahl der Spalten zurück.

Die php Syntax würde es auch so vorschlagen dass ich die zählvariable weg lasse, das Problem ist dann aber: woher weiß dann php welche Spalte er anzeigen soll?
 
Ne, wenn ich ein echo von $inventarZeilen mache bekomme ich die Anzahl der Zeilen zurück wieviel in der Tabelle sind also 9.
Wenn ich ein echo von $inventarSql mache bekomme ich die Anzahl der Spalten also 5. OK ich bekomme zwar ein "Resource id #5" aber php kann damit umgehen.

edit:
das Beispiel 1202 hat mir aber geholfen, danke. Ich habe es nun so gelöst. Es ist zwar nicht mehr so dynamisch wie vorher, aber es funktioniert

while ($inventarArray = mysql_fetch_array($inventarSql, MYSQL_BOTH))
{
echo "<tr>";
echo "<td>".$inventarArray[1]."</td>";
echo "<td>".$inventarArray[2]."</td>";
echo "<td>".$inventarArray[3]."</td>";
echo "<td>".$inventarArray[4]."</td>";
echo "</tr>";
}
 
Zuletzt bearbeitet:
Zurück
Oben