Thorsten F: php mysql

Hi,

ein ganz einfaches Problem, aber ich hänge daran fest.

Ich möchte mir gerne aus einer DB die letzten 5 Einträge ausgeben lassen; ich sortiere nach einem Geldbetrag. Er soll mir dann die letzten  Einträge mit einem aufsteigendem Betrag ausgeben.

Die Anzahl wieviele Einträge in der Tabelle sind lasse ich mir direkt ausgeben.
Ich dieses Problem nicht statisch lösen, da immer wieder neue Zeilen hinzukommen. Das Problem dynamisch zu lösen ist also Vorgabe...

jemand eine Idee?

habe bis das sowas:

Select * from tab_name where order by summe ASC Limit 5");

  1. habe bis das sowas:

    soll natürlich heißen:

    habe bis jetzt sowas:

  2. Ich möchte mir gerne aus einer DB die letzten 5 Einträge ausgeben lassen; ich sortiere nach einem Geldbetrag. Er soll mir dann die letzten  Einträge mit einem aufsteigendem Betrag ausgeben.

    was schreibe ich denn da? das er mir die letzten 5 Einträge ausgibt (dynamisch) habe ich ja schon.

    er soll mir die aber absteigend und nicht aufsteigend ausgeben!

    1. hi,

      was schreibe ich denn da? das er mir die letzten 5 Einträge ausgibt (dynamisch) habe ich ja schon.

      er soll mir die aber absteigend und nicht aufsteigend ausgeben!

      am einfachsten ist es, wenn du anschließend in PHP bei der ausgabe die sortierung umdrehst.
      beispielsweise erst in ein array packen, und dann array_reverse() drauf anwenden.

      gruß,
      wahsaga

      --
      "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      1. Ok, das mit dem Array ist ja eigentlich schon die Lösung, aber wie mache ich das?

        Weiß grade nicht, wie ich etwas in ein Array schreiben kann, nach dem ich mir die Werte per mysql_fetch_array aus der DB in einer While-Schleife geholt habe:

        //Anzahl der Zeilen holen
        $alle = mysql_query("Select * from tab_name order by summe");

        $j=0;
        while($alleda = mysql_fetch_array($alle, MYSQL_ASSOC))
        {
         $j++;
        }

        Ausgabe:

        //5 Schlechtplatzierte holen
        $bad = mysql_query("Select summe from tab_name order by summe Limit 5");

        $j = $j-4;
        while($databad = mysql_fetch_array($bad, MYSQL_ASSOC))
        {
         $summe = $databad['summe'];
         $summeround = round($summe, 2);
         $summekomma = str_replace(".",",",$summeround);

        echo "<tr><td align='center' style='color:red'>$j</td><td align='center' style='color:red'>$databad[Benutzerkennung]</td><td align='center' style='color:red'>$summekomma &euro;</td></tr>";
                $j++;
        }

        1. hi,

          Ok, das mit dem Array ist ja eigentlich schon die Lösung, aber wie mache ich das?

          Weiß grade nicht, wie ich etwas in ein Array schreiben kann, nach dem ich mir die Werte per mysql_fetch_array aus der DB in einer While-Schleife geholt habe:

          statt ausgeben halt zuweisen:

          $deinarray[] = $wert;

          $deinarray natürlich vor der schleife als array deklariert.

          gruß,
          wahsaga

          --
          "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    2. yo,

      er soll mir die aber absteigend und nicht aufsteigend ausgeben!

      wenn deine mysql version unterabfragen kann, sollte das auch mit einer abfrage gehen. auf der anderen seite solltst du dir geanken darüber machen, wie der sonderfall behandelt weden soll, falls zufällig beim "5. datensatz" gleiche werte in mehreren datensätzen in der spalte geldbetrag vorkommen.

      Ilja