 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
09.09.2002, 11:26
|
#1
|
|
TP-Insider
Registriert seit: May 2002
Ort: Colonia
|
Datensatznavigation PHP/MYSQL
Hallo TP'ler,
habe in der Suche leider nichts gefunden.
Habe folgendes Problem:
Habe eine BildDB und lasse mir dort mit limit die gefundenen Datensätze auf mehreren Seiten anzeigen, funzt auch alles!
Jetzt möchte ich aber, dass mir in meiner Navigation nicht alle Seiten auf einmal angezeigt werden, sondern wenn ich z.B. 50 ergebnisseiten habe, dann sollen nur erstmal 10 Seiten angezeigt werden (wie man das von Google kennt).
Seitenzahlennavi und dynamische Vor- und Zurück Buttons funzen, verstehe nur nicht, wie ich jetzt diese Seitenzahlen unterteile und dynamisch die nächsten einblende, sei es in Einer- oder Zehnerschritten!
Benutze Adagios Skript aus diesem Thread
Gruss
Chris
__________________
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
|
|
|
09.09.2002, 11:30
|
#2
|
|
TP-Specialist
Registriert seit: May 2001
Ort: Leipzig
|
Endlich das Thema liegt mir auch noch im Magen.
Deswegen wäre mir eine Antwort auch sehr recht.
|
|
|
09.09.2002, 11:33
|
#3
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Ich gehe mal davon aus, dass bei Deinem Kenntnistand ausreicht, die blanke Theorie aufzuführen:
- Du ermittelst die Gesamtzahl aller auszugebenen Datensätze (z.B. mit mysql_affected_rows())
- Diese Zahl teilst Du durch die gewünschte Zahl von Einträgen pro Seite; hier muss natürlich mit Modulo/Restwert (%) gearbeitet werden, damit bei nicht genau aufeghenden Divisionen der Rest auf die letzte Seite verteilt wird
- Dann kannst Du ganz einfach in einer Schleife die Links erzeugen lassen, die Werte für LIMIT ergeben sich ja aus obiger Rechnung
Ich habe da auch noch was passendes gegoogelt: http://www.php-center.de/artikel/blaettern.php3
__________________
Give up yourself into the moment — The time is now.
Geändert von Lars (09.09.2002 um 11:43 Uhr).
|
|
|
09.09.2002, 11:48
|
#4
|
|
TP-Insider
Registriert seit: May 2002
Ort: Colonia
|
Danke Lars,
aber die Seitenzahlennavi funzt, dass Problem bleibt aber!
Möchte, wenn ich z.B. ein Ergebnis mit 100 Seiten habe, dass erstmal nur 10 in der Navi angezeigt werden, beim weiterblättern sollen dann nach und nach die anderen Seiten dazu kommen.
Hoffe, dass ich es jetzt unmissverständlich ausgedrückt habe!
Erst:
100 Ergebnisseiten
1 2 3 4 5 6 7 8 9 10 >> >
Dann beim weiterblättern:
2 3 4 5 6 7 8 9 10 11 >> > usw...
Gruss
Chris
__________________
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
|
|
|
09.09.2002, 11:57
|
#5
|
|
TP-Specialist
Registriert seit: May 2001
Ort: Leipzig
|
Verständigungsproblem
Hallo Lars ich glaube du hast unsere Frage nicht ganz richtig verstanden. Wir haben bereits das Blätterscript und es funktioniert auch. Zum bessern Verständniss nochmal bei Bild.
Es gibt manchmal einfach zuviele Seitenzahlen wie bei mir hier:

|
|
|
09.09.2002, 12:08
|
#6
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Huch, da habe ich wohl was verpeilt ...
Eine Lösung habe ich ad hoc nicht auf Lager, aber vielleicht kommt mir die Erleuchtung ja noch. 
__________________
Give up yourself into the moment — The time is now.
|
|
|
09.09.2002, 15:55
|
#7
|
|
TP-Member
Registriert seit: Sep 2002
Ort: Berlin
|
hier die erforderlichen Änderung für die Schleife "Seitenzahlen":
$cut_left=5; // Anzahl Seiten-Links links von aktueller Seite
$cut_right=5; // Anzahl Seiten-Links rechts von aktueller Seite
$a=1;
$a_end=$anz_pages;
if($anz_pages>($cut_left+$cut_right)) {
if($curr_page>$cut_left) $a=$curr_page-$cut_left;
if(($curr_page+$cut_right)<$anz_pages) $a_end=$curr_page+$cut_right;
}
for($a;$a<=$a_end;$a++)
{
if($a != $curr_page)
{ ?> <a class="cmsnavi" href="../news/?limit=<?php echo ($a*$eintraege); ?>"><?php echo ($a); ?></a><?php
}
else
{
echo " [".($a)."]";
}
}
Achtung:
nicht nur die Schleife selbst habe ich geändert, sondern auch
neue Variablen eingebaut. Die müssen nartürlich mitkopiert werden und dürfen noch nicht in Eurem Script existieren!
taratus
|
|
|
09.09.2002, 16:11
|
#8
|
|
TP-Specialist
Registriert seit: May 2001
Ort: Leipzig
|
Vielen Dank bei mir klappt alles.
Genau das was ich schon lange gesucht habe.
|
|
|
09.09.2002, 16:16
|
#9
|
|
TP-Insider
Registriert seit: May 2002
Ort: Colonia
|
Ja, auch bei mir funzt es einwandfrei!
Vielen Dank !
Gruss
Chris
__________________
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
|
|
|
09.09.2002, 16:33
|
#10
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Auch ich habe den Dreh nun raus - Danke! 
__________________
Give up yourself into the moment — The time is now.
|
|
|
09.09.2002, 16:39
|
#11
|
|
TP-Insider
Registriert seit: May 2002
Ort: Colonia
|
Sorry, ist ja eigentlich schon erledigt, habe aber nun doch ein kleines Problem!
Und ich seh,wie immer, den Fehler nich.
Skript und Seitenanzeige funzen, aber irgendwo scheint es ein Rechenproblem zu geben. Auf der ersten Ergebnisseite werden die Klammern um Seite 1 nicht gesetzt, scheint ein Problem mit der if Abfrage zu sein und bei meinen beiden letzten Ergebnisseiten wird der Überhang falsch ausgerechnet bzw. falsch angezeigt.
Zur Verdeutlichung:
Habe 87 Datensätze auf 18 Seiten.
$eintraege=5
Bisher alles OK, navigier jedoch auf Seite 17, kriege ich nur 2 Einträge angezeigt und Seite 18 enthält gar keine Einträge.
Dazu wird auch noch der vor Button auf Seite 17 schon ausgeblendet.
Hier nochmal der Code:
$cut_left=1; // Anzahl Seiten-Links links von aktueller Seite
$cut_right=8; // Anzahl Seiten-Links rechts von aktueller Seite
$a=1;
$a_end=$anz_pages;
if($anz_pages>($cut_left+$cut_right)) {
if($curr_page>$cut_left) $a=$curr_page-$cut_left;
if(($curr_page+$cut_right)<$anz_pages) $a_end=$curr_page+$cut_right;
}
for($a;$a<=$a_end;$a++)
{
if($a != $curr_page)
{ ?> <a class="cmsnavi" href="bildsuche.php?action=1<?php If ($suchort_auswahl != "") {echo"&suchort=".$suchort_auswahl;} ?><?php If ($suchthema_auswahl != "") {echo"&suchthema=".$suchthema_auswahl;} ?>&limit=<?php echo ($a*$eintraege); ?>"><?php echo ($a); ?></a><?php
}
else
{
echo " [".($a)."]";
}
}?>
Hoffe, dass jemand den Fehler entdecken kann, ich kann den Fehler nicht finden!
Gruss
Chris
__________________
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
|
|
|
09.09.2002, 17:01
|
#12
|
|
TP-Specialist
Registriert seit: May 2001
Ort: Leipzig
|
Wo Chris es sagt bei mir ist es auch so.
Es muss wirklich am "$a" liegen. Zummal Seite 1 bei mir mit den Limit 10 (Einträge pro Seite) beginn anstatt bei 0 deswegen am Ende auch der Überhang.
|
|
|
09.09.2002, 17:42
|
#13
|
|
TP-Insider
Registriert seit: May 2002
Ort: Colonia
|
@ Flixxtoras
Habe das Problem gelöst, bei mir funzt es jetzt auf jeden Fall!
Folgendes habe ich verändert:
<?php
$cut_left=1; // Anzahl Seiten-Links links von aktueller Seite
$cut_right=8; // Anzahl Seiten-Links rechts von aktueller Seite
$a=0;
$a_end=$anz_pages;
if($anz_pages>($cut_left+$cut_right)) {
if($curr_page>$cut_left) $a=$curr_page-$cut_left;
if(($curr_page+$cut_right)<$anz_pages) $a_end=$curr_page+$cut_right;
}
for($a;$a<$a_end;$a++)
{
if($a != $curr_page)
{ ?> <a class="cmsnavi" href="bildsuche.php?action=1&limit=<?php echo ($a*$eintraege); ?>"><?php echo ($a+1); ?></a><?php
}
else
{
echo " [".($a+1)."]";
}
}?>
$a fängt jetzt bei 0 an zu zählen!
Dann muss $a allerdings innerhalb if else jeweils plus 1 gesetzt werden!
Gruss
Chris
__________________
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
|
|
|
09.09.2002, 18:08
|
#14
|
|
TP-Specialist
Registriert seit: May 2001
Ort: Leipzig
|
Klappt hatt $a auch schon auf 0 gesetzt allerdings das mit $a +1 vergessen.
Trotzdem hab ich bei 115 Ergebnisseiten 116.
Die 116. Seite ist aber leer.
Zum visuellen Verständnis:

|
|
|
09.09.2002, 18:14
|
#15
|
|
TP-Insider
Registriert seit: May 2002
Ort: Colonia
|
Dann solltest Du das $limit beim ersten Aufruf auf 0 setzen, z.B.:
<? If ($limit=="") { echo"<input type='hidden' name='limit' value='0'>";}
Danach hatte ich keinen Überhang mehr und auch keine leeren Seiten!
Check einfach mal, ob Deine Seite 1 bei limit 0 oder > anfängt!
Gruss
Chris
__________________
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 00:27 Uhr.
|
 |