Arraelement 1 fehlt

Fragenfrager

Erfahrenes Mitglied
Hallo liebes Forum,

ich habe eine mysql-Tabelle mit 18 Einträgen. Die Spalten lauten id und name.
Diese frage ich ab und schreibe sie in ein Array, dass ich in eine Session schreibe:
PHP:
              $stmt = "SELECT 
                        id,name 
                      FROM 
                        einrichtungen 
                      WHERE 
                        id in 
                        (
                          SELECT 
                            einrichtungen_id 
                          FROM 
                            user_darf_einrichtung 
                          WHERE 
                         user_id='$user_id')
                         ORDER BY id"; 
              $result = mysqli_query($con, $stmt);
              $einrichtungenarray = array(); 
              $row = $result->fetch_array(MYSQLI_BOTH);
              while ($row = mysqli_fetch_row($result)) 
                  {
                    $einrichtungenarray[]= $row;
                  }
              $_SESSION['einrichtungen'] = $einrichtungenarray;
Wenn ich auf einer anderen Seite dann ein
PHP:
print_r($_SESSION);
mache, dann fehlt mir das erste Element, sprich der erste Datenbankeintrag.
PHP:
[einrichtungen] => 
Array ( 
[0] => Array ( [0] => 2 [1] => Adendrot B ) 
[1] => Array ( [0] => 3 [1] => Regenbogen A ) 
[2] => Array ( [0] => 4 [1] => Regenbogen B ) 
[3] => Array ( [0] => 5 [1] => Zietlow I ) 
[4] => Array ( [0] => 6 [1] => Zietlow II )
....
 )
Führe ich das SQL-Statement direkt auf der Datenbank aus, so sind alle Elemente da.
Hat jemand eine Idee?
 
Ganz einfach: du rufst vor deiner Schleife mysqli_fetch_array() auf, welches dir die erste Zeile liefert. Dabei erhöhst du aber auch den internen Zähler, so dass mysqli_fetch_row() bei der zweiten Zeile anfängt. Du musst also den Aufruf von mysqli_fetch_array() davor weglassen.
 
Stimmt. Ganz einfach. Man darf halt nur den eigenen Code nicht so oft ändern, bis man stundenlang wie blöd draufschaut :)
Vielen Dank!
 
Zurück