ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
522
522
EMPFEHLEN
-
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,
prekoWem 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
-----------------------------------------------------------------------------------------------------
-
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.
Zitat von preko
Gruß hpvwWarum 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.
-
31.12.05 16:17 #3
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
-
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,
prekoWem 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
-----------------------------------------------------------------------------------------------------
-
01.01.06 20:33 #5
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.
Zitat von JaguarGorgone
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ß hpvwWarum 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.
-
02.01.06 09:44 #7
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
-
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.
Zitat von JaguarGorgone
Genauen Aufschluss gibt natürlich nur ein Performancetest.
Gruß hpvwWarum 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
-
Bestimmte Monate anzeigen
Von Halpha im Forum PHPAntworten: 6Letzter Beitrag: 13.06.10, 22:05 -
Bestimmte Woche anzeigen lassen
Von macropode im Forum PHPAntworten: 1Letzter Beitrag: 26.04.10, 22:02 -
Bestimmte Auswahl anzeigen
Von cmc-one im Forum PHPAntworten: 10Letzter Beitrag: 28.04.05, 18:07 -
[MySQL] Bestimmte Seiten anzeigen lassen
Von JDietrich im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 13.08.04, 16:31 -
Nur bestimmte Daten anzeigen
Von Soccertipp im Forum PHPAntworten: 1Letzter Beitrag: 18.08.02, 03:36





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren