• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

sizeof() funktioniert nicht

sin777

Neues Mitglied
der sizeof($ergerk) liefert mir immer 8 zurück, obwohl die tabelle nur vier spalten hat ... wie kommt das bzw. wie kann ich das beheben? Danke im Voraus

HTML:
                    <?php
                    $verberk = mysql_connect("localhost", "root", "passwort");
                    echo $verberk;
                    mysql_select_db("sin777", $verberk);
                    $ergerk = mysql_query("select * from gaestebuch", $verberk);
                    echo $ergerk;
                    $row = mysql_fetch_array($ergerk);
                    echo sizeof($row);

                    for($i = 0; $i < sizeof($row); $i++) {
                        echo $row[$i];
                    }
                    ?>
 
mysql_num_rows() liefert dir die Anzahl der Zeilen. sizeof() liefert die Anzahl der Schlüssel in dem Array. Du hast acht Felder, darum acht.

mysql_* solltest du im übrigen nicht verwenden.
 
wieso sollte ich mysql_* nicht verwenden bzw. wie soll ich das sonst machen? Wahrscheinlich war das Tutorial in dem mir das erklärt wurde schon ein wenig älter :(
 
mysql_num_rows() liefert dir die Anzahl der Zeilen. sizeof() liefert die Anzahl der Schlüssel in dem Array. Du hast acht Felder, darum acht.

Wenn man keine Ahnung hat, einfach mal..... (nicht, dass die Funktionserklärungen falsch wären, aber völlig an dem vorbei geredet was der Threadstarter eigentlich will)


Er sagt er hat 4 Spalten und sizeof() liefert 8. Das liegt eindeutig an mysql_fetch_array, was ein Array erzeugt dass jeden zurückgelieferten Wert einmal mit einer ID und einmal mit dem Spaltennamen aus der Datenbank als Key enthält.

Beispiel für Spaltennamen und zugehörige Werte:
Spalte 1 - Wert 1
Spalte 2 - Wert 2
Spalte 3 - Wert 3
Spalte 4 - Wert 4

Das entsprechende Array bei mysql_fetch_array ergibt:
PHP:
$row[0] = "Wert 1";
$row['Spalte 1'] = "Wert 1";
$row[1] = "Wert 2";
$row['Spalte 2'] = "Wert 2";
$row[2] = "Wert 3";
$row['Spalte 3'] = "Wert 3";
$row[3] = "Wert 4";
$row['Spalte 4'] = "Wert 4";
Was sin77 gerne hätte ist wahrscheinlich das -> bekommt man mit mysql_fetch_row()
PHP:
$row[0] = "Wert 1";
$row[1] = "Wert 2";
$row[2] = "Wert 3";
$row[3] = "Wert 4";
Die umgekehrte Variante wäre mysql_fetch_assoc() ... Da würde das Array so aussehen:
PHP:
$row['Spalte 1'] = "Wert 1";
$row['Spalte 2'] = "Wert 2";
$row['Spalte 3'] = "Wert 3";
$row['Spalte 4'] = "Wert 4";
 
Zurück
Oben