tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
522
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von preko
    preko preko ist offline Mitglied Brokat
    Registriert seit
    Jun 2004
    Ort
    Mönchengladbach
    Beiträge
    397
    Hi,

    ich habe folgendes Problem:

    Ausgangssituation:
    ich habe etwa 100 Datensätze mit ID-Nr. von z. B. 130 - 230.

    Zielsetzung:
    ich möchte auf einer (PHP-) Formularseite beim erstmaligen Aufruf der Seite den ersten Datensatz meiner MySQL Datenbanktabelle anzeigen lassen - soweit kein Thema.
    Auf dieser Formularseite sind zwei Buttons angebracht mit der Beschriftung "Vor" und "Zurück" - soweit auch kein Thema!

    Beim drücken des "Vor" Buttons soll dann der nächstfolgende Datensatz angezeigt werden. Also, wenn z. B. zuerst die ID-Nr. 130 angezeigt wird, soll dann die 131, dann die 132, etc. angezeigt werden - grundsätzlich auch kein Problem, wenn nicht dazwischen ID-Nr. fehlen würden, weil Datensätze gelöscht wurden!
    So kann es z. B. sein, dass die ID-Nr. 133 fehlt, da der Datensatz vorher gelöscht wurde. Beim "Zurück" Button soll das ganze natürlich konträr funktionieren.

    Und wenn dann die ID-Nr. 230 erreicht wurde, gibt es ja danach keine Datensätze mehr, also soll dann wieder der erste Datensatz angezeigt werden, bzw. in umgekehrter Richtung der letzte Datensatz, usw.!

    Ich hoffe, ich habe mich halbwegs verständlich ausgedrückt.

    Hat jemand einen Lösungsansatz, mit welcher Methode ich an die Sache rangehen kann, oder wo eine detailierte Anleitung zum Erstellen solch einer Funktionalität zum Studieren ist?

    Ich muss diese Seite heute noch hinkriegen, dacher bin ich für jeden Hinweis dankbar!


    Beste Grüße,
    preko
     
    Wem das Wasser bis zum Hals steht, sollte den Kopf nicht hängen lassen.

    Was man heute Rap-Musik nennt, hieß früher Stottern und war heilbar...

    Es gibt zwei Wege im Leben - den schweren und den falschen!
    -----------------------------------------------------------------------------------------------------
    http://www.prenociste-mir.com
    -----------------------------------------------------------------------------------------------------

  2. #2
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Zitat Zitat von preko
    Hat jemand einen Lösungsansatz, mit welcher Methode ich an die Sache rangehen kann, ... ?
    Mein Lösungsansatz wäre eine Blätterfunktion. Du musst lediglich darauf achten, dass Du nur einen Datensatz pro Seite anzeigst. Ein kleine Abfrage ob Du beim ersten bzw. letzten Datensatz bist ist dann auch kein Problem mehr.

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  3. #3
    Avatar von JaguarGorgone
    JaguarGorgone JaguarGorgone ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Beiträge
    57
    Hi,

    ich würds theoretisch so angehen:

    Bei jedem Seitenaufruf werden alle gewünschten Datensätze in einen Array geladen.

    Die aktuelle Seite ist der key des Arrays, die vorherige der key - 1, der folgende key + 1

    Als Daten werden dann nur die Werte mit dem aktuellen Key ausgegeben.

    Bei key == 99 ist der folgende Key wieder 0, bei key == 0 ist der vorherige die 99 (bei einer Gesamtmenge von 100 Datensätzen)

    Ich hoffe, ich konnte helfen.
    Guten Rutsch
     
    I never sleep, cause sleep is the cousin of death

    my-vendetta Pixville - Home of the Pix

  4. #4
    Avatar von preko
    preko preko ist offline Mitglied Brokat
    Registriert seit
    Jun 2004
    Ort
    Mönchengladbach
    Beiträge
    397
    Hi,

    erst einmal vielen Dank für die Anregungen.

    Das Blätter-Tut muß ich mir noch verinnerlichen.

    @JaguarGorgone:
    wird nicht die Datenmenge/Verarbeitungsgeschwindigkeit zu groß, wenn der komplette Datenbestand in ein Array geladen wird? Der Datenbestand wird ja im Laufe der Zeit größer.


    Beste Grüße,
    preko
     
    Wem das Wasser bis zum Hals steht, sollte den Kopf nicht hängen lassen.

    Was man heute Rap-Musik nennt, hieß früher Stottern und war heilbar...

    Es gibt zwei Wege im Leben - den schweren und den falschen!
    -----------------------------------------------------------------------------------------------------
    http://www.prenociste-mir.com
    -----------------------------------------------------------------------------------------------------

  5. #5
    Avatar von JaguarGorgone
    JaguarGorgone JaguarGorgone ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Beiträge
    57
    Vielleicht liest Du dann besser erst nur alle IDs in einen Array und dann erst in einem zweiten Schritt die anderen Daten mit der aktuellen ID. Das sollte die Ressourcen etwas schonen.
     
    I never sleep, cause sleep is the cousin of death

    my-vendetta Pixville - Home of the Pix

  6. #6
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Zitat Zitat von JaguarGorgone
    Vielleicht liest Du dann besser erst nur alle IDs in einen Array und dann erst in einem zweiten Schritt die anderen Daten mit der aktuellen ID. Das sollte die Ressourcen etwas schonen.
    Das schont die Ressourcen nahezu gar nicht und erfordert eine weitere Abfrage, die Ressourcen kostet.

    Wenn es wirklich auf Grund der Datenmenge oder eines schwachen Servers zeitkritisch werden sollte, ist IMHO der einzige Weg, die Datenmenge direkt beim Datenbankserver über LIMIT einzuschränken.

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  7. #7
    Avatar von JaguarGorgone
    JaguarGorgone JaguarGorgone ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Beiträge
    57
    Das die Auswahl über LIMIT eingeschränkt wird, davon bin ich mal stillschweigend ausgegangen.

    Schont es nicht Serverressourcen, wenn man nur einen Wert statt einen kompletten Datensatz ausliest?

    Schöne Grüsse
     
    I never sleep, cause sleep is the cousin of death

    my-vendetta Pixville - Home of the Pix

  8. #8
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Zitat Zitat von JaguarGorgone
    Schont es nicht Serverressourcen, wenn man nur einen Wert statt einen kompletten Datensatz ausliest?
    Ja schon, aber Auslesen aller IDs und eines ganzen Datensatzes mit einer zweiten Abfrage dauert vermutlich länger als einen Datensatz mit LIMT auszulesen und mit COUNT(*) in einer zweiten Abfrage die Anzahl zu ermitteln. Vor allem das Arbeiten auf dem Array in PHP kostet vermutlich Zeit.

    Genauen Aufschluss gibt natürlich nur ein Performancetest.

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

Ähnliche Themen

  1. Bestimmte Monate anzeigen
    Von Halpha im Forum PHP
    Antworten: 6
    Letzter Beitrag: 13.06.10, 22:05
  2. Bestimmte Woche anzeigen lassen
    Von macropode im Forum PHP
    Antworten: 1
    Letzter Beitrag: 26.04.10, 22:02
  3. Bestimmte Auswahl anzeigen
    Von cmc-one im Forum PHP
    Antworten: 10
    Letzter Beitrag: 28.04.05, 18:07
  4. [MySQL] Bestimmte Seiten anzeigen lassen
    Von JDietrich im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 13.08.04, 16:31
  5. Nur bestimmte Daten anzeigen
    Von Soccertipp im Forum PHP
    Antworten: 1
    Letzter Beitrag: 18.08.02, 03:36