Franz: Sortieren mit PHP

Hallo,

ich habe hier ein grosses Problem wo ich nicht weiterkomme
ich sitze hier schon 2 Tage dran aber mir fällt keine Idee ein :-(

Also hole mir folgende Zahlen aus der Datenbank 1 3 6 4

Nun möchte ich die zahlen in ein Array reinschreiben um sie dann sortieren zukönnen:

$dbh = getConn();
$result = mysql_query("select sort from menu", $dbh)or die(mysql_error());
mysql_close($dbh);

while($row = mysql_fetch_array($result))
{
echo $row['sort'] . " <br> ";
}

Als Ausgabe bekomme ich:

1
3
6
4

Ich möchte gerne mein Array so ansprechen könne wie man an meinen anderen Beispiel sieht:

$daten = array("1", "3", "6", "4");
echo $daten[2];

(Ausgabe: 6)

Und genauso ein Array möchte ich von meiner Datenbank bekommen! Aber ich komme auf keinen grünen Zweig ich habe mir auch schon hilfe mit google und http://www.phpcrawler.de/phpmanual/ gehollt aber ich komme einfach nicht weiter und fange immer wieder von vorne an.

Weiß jemand wie ich das mit mein Datenbank String mache?

Danke Franz

  1. Hallo Franz,

    Nun möchte ich die zahlen in ein Array reinschreiben um sie dann sortieren zukönnen:

    sortieren kannst du auch mit "[...] FROM menu ORDER BY sort" (siehe http://www.mysql.de/doc/de/SELECT.html(etwas scrollen))

    echo $row['sort'] . " <br> ";

    $daten[] = $row['sort'] hängt dir bei jedem Durchlauf der Schleife das aktuelle Element an das arrray $daten an. (siehe http://de.php.net/manual/de/language.types.array.php#language.types.array.syntax.modifying)

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. ich weiß das ich in mysql sortieren kann!

      aber ich will das mit php sortieren um nacher die neue sortierreihenfolge neu abspeichern zukönnen.

      und auf der seite war ich auch schon...

      komme trotzdem nicht weiter...

  2. Hallo Franz!

    Also hole mir folgende Zahlen aus der Datenbank 1 3 6 4

    Nun möchte ich die zahlen in ein Array reinschreiben um sie dann sortieren zukönnen:

    $result = mysql_query("select sort from menu", $dbh)or die(mysql_error());

    Wenn du die Werte sortieren willst, kannst du das doch evtl. auch gleich die Datenbank erledigen lassen.
    Stichwort ORDER BY.
    (http://www.mysql.com/doc/en/index.html)

    while($row = mysql_fetch_array($result))
    {
    echo $row['sort'] . " <br> ";
    }

    $daten = array("1", "3", "6", "4");
    echo $daten[2];

    Und genauso ein Array möchte ich von meiner Datenbank bekommen!

    Dann schreib die Daten doch einfach in ein Array und gebe sie nicht gleich aus.

    Statt dem echo kannst Du also z.B. schreiben:
    $daten[] = $row['sort'];
    (Vor dem while solltest Du noch $daten = array() notieren.)

    MfG
    Götz

    --
    Losung und Lehrtext für Samstag, 20. September 2003
    Ich will meinen Odem in euch geben, dass ihr wieder leben sollt, und will euch in euer Land setzen, und ihr sollt erfahren, dass ich der Herr bin. (Hesekiel 37,14)
    Ihr sollt euch als solche ansehen, die für die Sünde tot sind, aber für Gott leben in Christus Jesus, unsrem Herrn. (Römer 6,11)
    (http://www.losungen.de/heute.php3)
    1. Statt dem echo kannst Du also z.B. schreiben:
      $daten[] = $row['sort'];
      (Vor dem while solltest Du noch $daten = array() notieren.)

      MfG
      Götz

      Hallo Göz,

      ja genau das habe ich gesucht!
      ------
      $daten = array();
      while($row = mysql_fetch_array($result))
      {
      echo $row['sort'] . " <br> ";
      $daten[] = $row['sort'];
      }
      echo "<br>".$daten[2];
      ---

      Was macht    $daten = array();   ?
      Soll das die definition sein das es ein Array ist? Wenn ich das nicht mache geht es dann nicht?

      Und die Kommatrennung wird automatisch angelegt, muß wohl.
      So wie es im mein Beispiel war: $daten = array("1", "3", "6", "4");

      Gruß Franz

      1. Hallo Franz!

        ja genau das habe ich gesucht!

        Schön.

        Was macht    $daten = array();   ?
        Soll das die definition sein das es ein Array ist? Wenn ich das nicht mache geht es dann nicht?

        Das legt fest, daß $daten ein Array ist.
        Siehe auch die Funktionsbeschreibung im Manual (http://de.php.net/manual/de/function.array.php).

        Und die Kommatrennung wird automatisch angelegt, muß wohl.

        Es wird ein Array angelegt.
        Die "Kommatrennung" ist imho für Dich völlig uninteressant, wenn Du den Array mit $daten[] = $bla befüllst.
        Du kannst eben mit array() den Array nicht nur "erstellen" sondern auch gleich befüllen.
        Und jeder Wert, den du an array() übergibst ist halt ein Parameter, den die Funktion annimmt und entsprechend etwas damit macht (wie es ja bei jeder anderen Funktion auch ist), also hier in den Array schreibt.

        MfG
        Götz

        --
        Losung und Lehrtext für Samstag, 20. September 2003
        Ich will meinen Odem in euch geben, dass ihr wieder leben sollt, und will euch in euer Land setzen, und ihr sollt erfahren, dass ich der Herr bin. (Hesekiel 37,14)
        Ihr sollt euch als solche ansehen, die für die Sünde tot sind, aber für Gott leben in Christus Jesus, unsrem Herrn. (Römer 6,11)
        (http://www.losungen.de/heute.php3)
        1. Hallo

          Das legt fest, daß $daten ein Array ist.
          Siehe auch die Funktionsbeschreibung im Manual (http://de.php.net/manual/de/function.array.php).

          Eigentlich ganz simpel die Lösung aber ich bin nicht drauf gekommen :-(

          Obwohl ich auch auf der Seite vom PHP Handbuch war...

          Ok besten Dank!

          Gruß Franz