Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Nächster Eintrag

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Nächster Eintrag

    Hi!

    Wie bekomme ich den nächsten Eintrag in der db?

    Hab also zb eine while-schleife:

    $rank_result=mysql_query(" SELECT rank_id,rank_title,rank_min FROM phpgb_ranks WHERE rank_special=\"0\" ORDER by rank_min ASC ") or die(mysql_error());
    while($rank_row=mysql_fetch_array($rank_result))
    {
    $rank_min=$rank_row['rank_min'];
    ...

    bräuchte nun sowas wie:
    $rank_max=get_next_entry($rank_row['rank_min']);

  • #2
    Re: Nächster Eintrag

    Zitat von DaRkX
    Wie bekomme ich den nächsten Eintrag in der db?
    RTFM:
    http://de.php.net/mysql_fetch_array

    Zitat von PHP Handbuch
    array mysql_fetch_array ( resource Ergebnis-Kennung [, int Ergebnistyp])

    Liefert ein Array das dem aktuellen Datensatz entspricht oder FALSE, wenn keine weiteren Datensätze vorliegen.

    mysql_fetch_array() ist eine erweiterte Version von mysql_fetch_row(). Die Daten werden sowohl unter numerischen Indizes des Ergebnis-Arrays abgelegt, als auch unter assoziativen Indizes. Als Schlüssel für die assoziativen Indizes werden die Feldnamen benutzt.

    Verwenden Sie MYSQL_BOTH, erhalten Sie ein Array mit assoziativen und numerischen Indizes. Bei MYSQL_ASSOC erhalten Sie nur asoziative Indizes (genau wie bei mysql_fetch_assoc()). Verwenden Sie MYSQL_NUM erhalten Sie nur numerische Indizes (genau wie bei mysql_fetch_row()).

    Kommentar


    • #3
      ja, aber wenn ich bereits while($row=mysql_fetch_array($res)) mache und dann in dieser Schleife nochmal mysql_fetch_array($res) wird der zähler des fetches um insgesamt 2 erhöht, anstatt um 1.

      Kommentar


      • #4
        danke, habs schon selber rausgefunden;
        Wenn ich die Lösung hier poste, würde das denke ich leider nichts bringen, da es relativ viel code ist und zudem unübersichtlich für die, die meine db nicht kennen. Habs am Ende dann mit einer for-schleife hinbekommen.

        Kommentar


        • #5
          Zitat von DaRkX
          ja, aber wenn ich bereits while($row=mysql_fetch_array($res)) mache und dann in dieser Schleife nochmal mysql_fetch_array($res) wird der zähler des fetches um insgesamt 2 erhöht, anstatt um 1.
          Korrekt erkannt. Jeder Aufruf dieser Funktion liefert den nächsten Datensatz (oder false, wenn es keinen mehr gibt) und stellt internen Ergebnis-Zeiger eine Position weiter. Den Zeiger kannst Du auch direkt manipulieren:
          http://de3.php.net/manual/de/functio...-data-seek.php

          Kommentar


          • #6
            und wie ermittel ich den Zeiger?

            Ich müsste ihn ja eins weiter- und dann wieder zurücksetzen.

            Kommentar


            • #7
              Zitat von DaRkX
              und wie ermittel ich den Zeiger?
              Ich müsste ihn ja eins weiter- und dann wieder zurücksetzen.
              Mitzählen:

              "Die Datensatznummer beginnt bei 0. Die Datensatznummer sollte ein Wert im Bereich zwischen 0 und mysql_num_rows - 1 sein. Falls die Ergebnismenge jedoch Null sein sollte (mysql_num_rows == 0) wird eine Suche nach Datensatznummer 0 mit einem E_WARNING fehlschlagen und mysql_data_seek() gibt FALSE zurück."

              Kommentar


              • #8
                ah, alles klar, vielen dank

                Kommentar

                Lädt...
                X