Ergebnis 1 bis 12 von 12

Thema: SQL next() Funktion zum Anfang zurück

  1. #1
    Contao-Fan Avatar von izanagi
    Registriert seit
    19.01.2011.
    Ort
    Köln
    Beiträge
    595

    Standard SQL next() Funktion zum Anfang zurück

    Moin, ich hänge hier seit einer Ewigkeit an der next() Funktion des Contao Frameworks.
    Ich habe eine Objekt das ich per while schleife 3x benutzen möchte ohne eine neue Abfrage zu starten.
    Jetzt fiel mir nach 2 Stunden endlich auf, das next() die Pointer position irgendwie speichert. Wenn ich also die zweite While Schleife starte, sind wir in der letzten Zeile bereits,
    daher kein wunder das keine Inhalte mehr vorhanden sind.

    Jetzt versuch ich gerad das Objekt 2 mal zu klonen was aber auch unstimmig ist. Gibt es keine back() oder restart() Funktion ?

    ps: wieso find ich bei google eigentlich kein Handbuch zum Framework? Kommt häufig vor das ich die internen Funktionen nutzen möchte aber nur über lange Umwege fündig werde.
    Hab ich was übersehen !?!

    gruss
    Geändert von izanagi (21.07.2014 um 22:17 Uhr)
    Erweiterungen [district_settings] [district_cloud3d] [district_rating]
    Design,Web,Videos und Games - mediadistrict.de

  2. #2
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.518
    User beschenken
    Wunschliste

    Standard first() / prev() / last()

    mach statt next() einfach einmal! ein first() und du bist wieder am Anfang. Du kannst übrigens auch mit prev() rückwärts gehen und mit last() zum Ende springen.
    Geändert von BugBuster (22.07.2014 um 08:58 Uhr)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  3. #3
    Contao-Fan Avatar von izanagi
    Registriert seit
    19.01.2011.
    Ort
    Köln
    Beiträge
    595

    Standard

    Och..so einfach ? Das ist ja fast schon einleuchtend.
    Also ich hab das jetzt probiert und hab den Server lahm gelegt. Irgendwie verursacht das first eine endlosschleife kann das sein ? muss ich die noch manuell anhalten ?
    Erweiterungen [district_settings] [district_cloud3d] [district_rating]
    Design,Web,Videos und Games - mediadistrict.de

  4. #4
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Aeh, du darfst das nur einmal aufrufen....

    PHP-Code:
    $items = \Database.....

    // Let's do the loop baby, let's do the loop...
    while ($items->next())
    {
    }
    $items->first();
    // Let's do the loop all over again...
    while ($items->next())
    {

    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  5. #5
    Contao-Fan Avatar von izanagi
    Registriert seit
    19.01.2011.
    Ort
    Köln
    Beiträge
    595

    Standard

    Autsch, danke euch beiden.
    Ich hatte die Funktion in der while schleife selbst dat kann ja nicht gut gehn. Dachte es wäre ein Ersatz für next()

    Danke
    Erweiterungen [district_settings] [district_cloud3d] [district_rating]
    Design,Web,Videos und Games - mediadistrict.de

  6. #6
    Contao-Fan Avatar von izanagi
    Registriert seit
    19.01.2011.
    Ort
    Köln
    Beiträge
    595

    Standard

    Ach verdammt das funktioniert ja garnicht. Da war ich wohl etwas zu zuversichtlich.
    Habe die Funktion first() mal getestet mit einem break in der ersten Schleife. Praktisch müsste hier in der zweiten Schleife dann bei Zeile 1 wieder anfangen.
    Macht er aber nicht, er startet bei Zeile 2. Also dort wo wir in der ersten Schleife aufgehört haben

    PHP-Code:
    $artikel $this->Database->prep...
    while (
    $artikel->next()){
    $last $artikel->id;
    break;
    }
    $artikel->first();
    while (
    $artikel->next()){
    $last2 $artikel->id;
    break;
    }
    echo:: 
    last 1 und last2 
    Geändert von izanagi (22.07.2014 um 12:53 Uhr)
    Erweiterungen [district_settings] [district_cloud3d] [district_rating]
    Design,Web,Videos und Games - mediadistrict.de

  7. #7
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.518
    User beschenken
    Wunschliste

    Standard

    Logisch, weil first schon auf den ersten zeigt und du mit next dann den zweiten holst.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  8. #8
    Contao-Nutzer Avatar von Nils Heinold
    Registriert seit
    04.09.2010.
    Ort
    Uckermark
    Beiträge
    155
    User beschenken
    Wunschliste

    Standard Hallo

    Vielleicht hilft dir ein

    PHP-Code:
    $artikel->reset(); 
    Gruß Nils


    Die Tastatur klemmte
    Geändert von Nils Heinold (22.07.2014 um 13:50 Uhr)

  9. #9
    Contao-Fan Avatar von izanagi
    Registriert seit
    19.01.2011.
    Ort
    Köln
    Beiträge
    595

    Standard

    Moment, dann müsste aber wenn ich die Schleife bis zum Ende laufen lasse bei $last2 wieder echo 2 rauskommen.
    Aber da bekomm ich null weil der Zeiger komplett am Ende steht. Das first() bewirkt überhaupt garnix.

    @Nils
    super das Ding funzt. Darf ich fragen woher du weisst ? Gibts da ne Dokumentation
    Erweiterungen [district_settings] [district_cloud3d] [district_rating]
    Design,Web,Videos und Games - mediadistrict.de

  10. #10
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.518
    User beschenken
    Wunschliste

    Standard

    Ja, Quellcode :-) Das mit reset() wäre jetzt auch der nächste Tipp gewesen.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  11. #11
    Contao-Nutzer Avatar von Nils Heinold
    Registriert seit
    04.09.2010.
    Ort
    Uckermark
    Beiträge
    155
    User beschenken
    Wunschliste

    Standard Ja, Quellcode :-)

    PHP-Code:
    public function reset() 
    https://github.com/contao/core/blob/...esult.php#L424

  12. #12
    Contao-Fan Avatar von izanagi
    Registriert seit
    19.01.2011.
    Ort
    Köln
    Beiträge
    595

    Daumen hoch

    im Quellcode... ja ihr seid mir ein paar Rabauken :P
    Sehr cool. Danke
    Erweiterungen [district_settings] [district_cloud3d] [district_rating]
    Design,Web,Videos und Games - mediadistrict.de

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •