Nur IDs auslesen, die es auch gibt

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

  • Nur IDs auslesen, die es auch gibt

    Hallo zusammen!

    Ich habe Bild-URLs in einer DB. Wenn nun jemand die Website besucht, wird immer das nächste Bild (also der nächste DB-Eintrag) angezeigt. Die ID des aufgerufenen Bildes speichere ich in einer Text-Datei. Beim nächsten Aufruf der Seite wird erst die ID aus der Datei geholt, um eins erhöht und dann die entsprechende ID aus der DB geholt.

    Nun meine Frage:
    Es kann vorkommen, dass ich Einträge aus der DB lösche und nun Lücken in der vortlaufenden ID enstehen. Kann ich dass mit einer Funktion überprüfen, dass dann die nicht vorhandenen IDs übersprungen werden oder wie mache ich das am einfachsten?
    Kann natürlich auch sein, dass mehrer IDs hintereinander fehlen ... 12 13 14 17 18 19 ...

    Wäre um jeden Rat und Code-Schnipsel dankbar.

    Gibts vielleicht so was wie:
    SELECT * FROM db WHERE id = next after '$current_id'


    Grüße, Andi
    Zuletzt geändert von andik2000; 06.11.2002, 12:36.

  • #2
    SELECT min(id) FROM db WHERE id > '$current_id'

    "suche mir dsas kleinste, was größer ist als ... "
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      wie wärs so:
      SELECT * FROM db WHERE id >= '$current_id' ORDER BY id LIMIT 0,1
      Beantworte nie Threads mit mehr als 15 followups...
      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

      Kommentar


      • #4
        Anzhal der Einträge ermitteln:

        $Werbung88 = mysql_query("select col1,col2 from tabel1");
        $Anzahl = mysql_num_rows ($Werbung88);


        dann mit

        mysql_data_seek($result,$Nummer);

        den entsprechenen Eintrag aus der Datenbank ziehen.

        $Nummer ist jetzt fortlaufend hat aber nichts mit der ID zu tun die in der Datenbank steht.
        gruß
        berni

        php-Entwicklung | ebiz-consult.de
        PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
        die PHP Marktplatz-Software | ebiz-trader.de

        Kommentar


        • #5
          @_TBT:
          Das ist ja cool, wo finde ich eine Übersicht, was man alles mit SELECT anstellen kann. Im mySQL-Handbuch ist alles so sehr verstreut.

          @ MelloPie:
          Ehmm, ja - hätte ich ja wohl auch drauf kommen können. Ich trage nur manchmal gerne die Kirche ums Dorf und sehe dabei den Wald vor lauter Bäumen nicht. Ich stell mich jetzt in die Ecke schämen - wie so oft!

          @Berni:
          Woher weis ich denn aber was meine alte ID war, wenn nun alles fortlaufend nummeriert ist. Die hat ja denn auch einen anderen Wert, wenn vor Ihr schon ein paar Lücken waren.


          Danke Euch allen!!! Hat mich sehr gehilft!

          Kommentar


          • #6
            Die beste Lösung ist die von MelloPie, da hier alles auf dem Server passiert.
            Die Lösung von Berni finde ich nicht wirklich performant?!
            @Berni
            Wenn ich das richtig verstehe, holst du alle Daten aus der DB und holst dir aus der Datenmenge dann den bestimmten Datensatz. Das macht doch keinen Sinn oder?
            Nehmen wir an wir haben 10000 Datensätze. Wenn ich alle Datensätze aus der DB hole und dann nur einen anzeige, habe ich 9999 Datensätze um sonst aus der DB geholt!

            So wie MelloPie das macht ist schon richtig, denke ich.

            @andik2000
            Geh einfach auf http://www.mysql.com
            Dort gehst du einfach in die Documentation. Dort wird der Select Syntax ausführlich erklärt. Eine Liste mit allen möglichen Befehlen im Select Statement ist auch vorhanden.
            Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

            Kommentar


            • #7
              ich baue nur den resultset auf.


              bsp.

              ID in der Datenbank
              1
              2
              4
              10
              30

              Jetzt suchst du dir die Anzahl der Einträge mit

              $res= mysql_query("select .... from ..");
              $Anzahl= mysql_num_rows ($res=); // Anzahl 5

              jetzt kann ich fortlaufen auf die Einträge zugreifen z.b $counter

              mysql_data_seek($res,$counter);

              und mir den Eintrag anzeigen lassen

              $row=mysql_fetch_array($res);

              that's it

              php-Entwicklung | ebiz-consult.de
              PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
              die PHP Marktplatz-Software | ebiz-trader.de

              Kommentar

              Lädt...
              X