Den 1. Datensatz ignorieren

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

  • Den 1. Datensatz ignorieren

    Hallo...

    ich nutze derzeit folgenden Code um mir alles Bilder eines Angebotes aus der Datenbank auszulesen.
    PHP-Code:
    /* Bilder */
    $result_bilder_2 $db->query("SELECT * FROM ".$prefix."bilder WHERE angebot = '".$_GET['id']."'");
        
    while (
    $row_bilder_2 mysql_fetch_array($result_bilder_2)) {
        
    $tpl->load('detail_bit''detail_bit');

    Das klappt auch ganz gut...jedoch möchte ich den ersten Datensatz in der WHILE-Schleife überspringen...sprich...es sollen erst alle Bilder ab dem 2. Datensatz angezeigt werden.

    Das ganze hat den Grund, dass das 1. Bild bereits weiter oben auf der Seite angezeigt wird und es ja somit doppelt vorhanden wäre. Ich probiere schon die ganze Zeit mit LIMIT rum...aber irgendwie komme ich nicht weiter.
    Mfg,

    Schoppy

  • #2
    evt ein zähler in derschleife benutzen... dann brauchste nichts experimentieren...
    oder
    To retrieve all rows from a certain offset up to the end of the result set, you can use some big number for the second parameter:
    mysql> SELECT * FROM table LIMIT 95,18446744073709551615; # Retrieve rows 96-last.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      oder mysql_data_seek
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        kleiner Tipp zur optimierung:

        warum machst du zwei queries (einer für das "Top"-Angebot und einer für den Rest)?

        Kommentar


        • #5
          Hallo...

          na genau deshalb, weil ich mit meinem Problem nicht richtig weiterkomme...

          Die Variante mit mysql_data_seek hatte ich auch schon in Betracht gezogen, doch irgendwie bin ich anscheinend zum dumm den Befehl zu nutzen oder ich setze ihn immer an der falschen Stelle ein.

          Er muß doch eigentlich außerhalb der Schleife platziert werden, da ja sonst bei jedem Durchlauf der Zeiger wieder auf den Anfang gesetzt wird, oder?

          Wäre echt super, wenn mir jemand helfen könnte, wie ich das mit einer Query lösen kann...

          Soll ja keine fertiger Code sein...weitere Tips helfen vielleicht auch...ich will es ja schließlich selber schaffen...allerdings hilft mir das PHP-Manuel auch nicht wirklich weiter.
          Mfg,

          Schoppy

          Kommentar


          • #6
            eine query:
            "SELECT * FROM ".$prefix."bilder WHERE angebot = '".$_GET['id']."'"
            // wo isn dein Order???
            dann machste ne
            while($ds = mysql_fetch_array($rs)){
            $array[] = $ds;
            }

            sodele jetzthaste den ersten datensatz in $array[0] den gibste dann oben aus un dden restunten auf der seite oder wo auch immer....
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              Original geschrieben von MelloPie
              sodele jetzthaste den ersten datensatz in $array[0] den gibste dann oben aus un dden restunten auf der seite oder wo auch immer....
              dann würde ich lieber die query ganz zu anfang machen, dort wo er das erste bild braucht ein mal mysql_fetch_array() anwenden, und dann hat er in der while-schleife automatisch nur noch den rest (sofern er den zeiger nicht explizit verstellt) ...
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                ansichtssache. mit dem arary kannste auf den zeiger später dann verzichten...
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  Hallo...

                  so ich habe das jetzt momentan so:
                  PHP-Code:
                  /* Bild */
                  $result_bilder $db->query("SELECT * FROM ".$prefix."bilder WHERE angebot = '".$_GET['id']."' ORDER BY pic_id ASC");
                  $row_bild_1 mysql_fetch_array($result_bilder);
                      
                  /* Thumbnail erzeugen */
                  make_thumb($row_bild_1['url'], 276);
                      
                  while (
                  $row_bild_2 mysql_fetch_array($result_bilder)) {
                      
                  $tpl->load('detail_bit''detail_bit');
                  }    

                  $tpl->load('content''detail'); 
                  Das funktioniert auch mit dem ersten Bild super...es wird richtig angezeigt...allerdings weiß ich jetzt nicht, wo und besonders wie ich den Befehl mysql_data_seek einsetzen kann um jetzt in der Schleife beim 2. Datensatz zu starten.
                  Mfg,

                  Schoppy

                  Kommentar


                  • #10
                    spar dir das seek. das wars eigentlich schon.

                    lies dir die funktion mysql_fetch_array() mal im manual durch. dann wird auch das mit dem Zeiger klar!

                    Kommentar


                    • #11
                      Hallo...

                      danke...ich habe es nun geschafft...
                      Mfg,

                      Schoppy

                      Kommentar

                      Lädt...
                      X