Rainer: Array aus Datenbank erstellen

Hallo,

folgender Code gibt als Fehlermeldung "Warning: array_push() [function.array-push]: First argument should be an array in C:\xampplite\htdocs\www.test.com\index.php on line 86" aus.
first Argument = $Modell? Aber genau dieses leere Array will ich mit den Daten befüllen.

<CODE>

$sql = "SELECT ID FROM modell";
 $res = mysql_query($sql);
           $Modell = array(); //leeres Array anlegen
    while($z = mysql_fetch_row($res)): //Schleife um Array zu füllen
    $Modell = array_push($Modell,"$z[0]"); //Zeile 86!!
    endwhile; //Schleifenende

print_r($Modell);

</CODE>

Ich möchte von den Daten aus der Datenbank(Mysql 3.23) ein Array mit den ID's der Datensätze bilden. Es müsste also bei print_r
Modell([0] => 1 [1] => 2)..... ergeben. Wo ist der Fehler? Oder geht das auch ganz anders z.Bsp. direkt mit einem Select aus der DB?

Gruß Rainer

  1. Hallo Rainer,

    $Modell = array_push($Modell,"$z[0]"); //Zeile 86!!

    Schau dir nochmal die Doku zu array_push() an, was die bezüglich des Rückgabewertes meint - du bekommst nämlich nicht das geänderte Array zurück, sondern die Anzahl der Elemente des Arrays. Und wenn du schonmal in der Zeile bist, kannst du gleich noch die Anführungszeichen um $z[0] entfernen - für was sollen die gut sein?

    Grüße aus Nürnberg
    Tobias

    1. Danke,

      <CODE>
      array_push($User,$z[0]);
      </CODE>

      macht genau was ich will.

      Gruß Rainer

      1. echo $begrüßung;

        array_push($User,$z[0]);
        macht genau was ich will.

        Wenn du die Dokumentation aufmerksam gelesen hättest, würdest du beim Anhängen eines einzelnen Wertes an ein Array statt obigem Code das üblichere, schnellere (unnötiger Funktionsaufruf fällt weg) und einfachere

        $User[] = $z[0];

        verwenden.

        echo "$verabschiedung $name";