Array nur die letzten 3 werte ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Array nur die letzten 3 werte ausgeben

    Hi@all

    PHP-Code:
    $row=@mysql_fetch_array($result);
    {
     
    hier möchte ich nur die letzten 3 Einträge habeninsgesamt sind je nach query-Abfrage unterschiedlich viele einträge vorhanden.

    Beispiel:
    Abfrage ergibt: 1 -2 -3 -4 -5
    ich möchte aber nur 3 -4 -5 ausgeben

    Thx@all

  • #2
    Hallo,

    wenn du stattdessen mysql_fetch_assoc() verwendest, kannst du über die Spaltennamen der Tabelle auf $row zugreifen, z. B. $row['vorname']

    Edit: Solltest du dagegen die letzten drei Datensätze meinen (deine Fragestellung war dahingehend vage), sortiere das Ergebnis anders herum (ORDER BY ... DESC) und arbeite mit einer Limit-Klausel (LIMIT 3).

    Gruß,

    Amica
    Zuletzt geändert von AmicaNoctis; 09.04.2011, 12:09.
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Warum selektierst du nicht im SQL-Query genau die Einträge, die du brauchst? Warum ladest du Daten, die du gar nicht haben willst?

      Kommentar


      • #4
        PHP-Code:
        $result_last=mysql_query("
        SELECT id, vorname, nachname, geburt
        FROM   "
        .$dbtable."
        WHERE  ((DATE_FORMAT(geburt, \"%m%d\") < DATE_FORMAT(CURRENT_DATE, \"%m%d\")) && (geburt!='0000-00-00'))
        ORDER BY (DATE_FORMAT(geburt, \"%m%d\")) DESC
        Limit 3"
        );

        while(
        $row=@mysql_fetch_array($result_last))
        {
        AUSGABE

        bekomme als Beispiel jetzt:

        23.03.2011 - 27.02.2011 - 26.02.2011

        möchte es aber genau andersherum:

        26.02.2011 - 27.02.2011 - 23.03.2011


        Thx@all

        Kommentar


        • #5
          Stecke die Abfrage in ein Sub-Select und sortiere außerhalb nochmal in die andere Richtung.

          Alternative: Schreib mit PHP die Werte in ein Array und verwende dann array_reverse().

          Warum verwendest du überall @? Dies unterdrückt Fehlermeldungen, was man tunlichst unterlassen sollte. Fehler sollte man nicht ignorieren, sondern behandeln.

          Kommentar


          • #6
            Zitat von h3ll Beitrag anzeigen
            Stecke die Abfrage in ein Sub-Select und sortiere außerhalb nochmal in die andere Richtung.
            Sorry, versteh ich nicht

            Zitat von h3ll Beitrag anzeigen
            Alternative: Schreib mit PHP die Werte in ein Array und verwende dann array_reverse().
            $result = array_reverse($result_last);
            bekomme ich ne Fehlermedlung: array_reverse() expects parameter 1 to be array

            ???
            Thx@all

            Kommentar


            • #7
              Zitat von Prominenter Beitrag anzeigen
              Sorry, versteh ich nicht
              http://www.google.com/search?q=mysql+subselect

              $result = array_reverse($result_last);
              bekomme ich ne Fehlermedlung: array_reverse() expects parameter 1 to be array
              Ist $result_last etwa ein Array?
              Nein, ist es natürlich nicht.

              Lerne bitte Grundlagen - du scheinst noch sehr wenig Ahnung zu haben, was dein Code überhaupt tut, bzw. wo welche Art von Datentyp vorliegt.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Zitat von wahsaga Beitrag anzeigen
                Ist $result_last etwa ein Array?
                Nein, ist es natürlich nicht.
                Etwa nicht, die mysql Abfrage wird doch als Array zurückgegeben oder ?
                $result_last=mysql_query("...");

                ?

                Thx@all

                Kommentar


                • #9
                  Nein, wird sie nicht, sie wird als Ressource zurückgegeben. Deswegen muss man ja die Datensätze auch mit mysql_fetch_* abrufen. Dabei kann man die Daten in ein Array schreiben oder direkt ausgeben oder was auch immer. Das steht aber alles auch im Handbuch.
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Thx@all
                    PHP-Code:
                    while( $row = @mysql_fetch_array($result_last) )
                    {
                     
                    $resultset[] = $row;
                    }
                    $resultset array_reverse($resultset);
                    foreach(
                    $resultset as $row)
                    {
                     echo 
                    ' AUSGBAE '';

                    Kann geschlossen werden.

                    Kommentar

                    Lädt...
                    X