• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

AHHH -> gästebuch nummerierung

woodruff

New member
aahhhh! ich werd noch wahnsinnig! der entry count gehört doch sicher hier irgendwo hinein! komm aber nicht drauf!

bin schon total bubu!

schaff es nicht das mit den verschiedenen pages abzuchecken!




PHP:
    #  Calculate Page-Numbers
    #################################################################################################

    if (empty($perpage)) $perpage = 1;
    if (empty($pperpage)) $pperpage = 9;	//!!! ONLY 5,7,9,11,13 !!!!
    if (empty($sort)) $sort = "desc";
    if (empty($offset)) $offset = 0;
    if (empty($poffset)) $poffset = 0;
    $amount = mysql_db_query($database, "SELECT count(*) FROM guestbook");
    $amount_array = mysql_fetch_array($amount);
    $pages = ceil($amount_array["0"] / $perpage);
    $actpage = ($offset+$perpage)/$perpage;
    $maxoffset = ($pages-1)*$perpage;
    $maxpoffset = $pages-$pperpage;
    $middlepage=($pperpage-1)/2;
    if ($maxpoffset<0) {$maxpoffset=0;}
    echo "<td><div class=\"mainpages\">\n";
    if ($pages) {                                       // print only when pages > 0
        echo "$ad_pages\n";
	if ($offset) {
    	    $noffset=$offset-$perpage;
            $npoffset = $noffset/$perpage-$middlepage;
	    if ($npoffset<0) {$npoffset=0;}
            if ($npoffset>$maxpoffset) {$npoffset = $maxpoffset;}
	    echo "[<a href=\"$PHP_SELF?offset=0&poffset=0$adminlink\"><<</a>] ";
	    echo "[<a href=\"$PHP_SELF?offset=$noffset&poffset=$npoffset$adminlink\"><</a>] ";
    	}
        for($i = $poffset; $i< $poffset+$pperpage && $i < $pages; $i++) {
	    $noffset = $i * $perpage;
    	    $npoffset = $noffset/$perpage-$middlepage;
    	    if ($npoffset<0) {$npoffset = 0;}
    	    if ($npoffset>$maxpoffset) {$npoffset = $maxpoffset;}
	    $actual = $i + 1;
    	    if ($actual==$actpage) {
 		echo "(<b>$actual</b>) ";
            } else {
 		echo "[<a href=\"$PHP_SELF?offset=$noffset&poffset=$npoffset$adminlink\">$actual</a>] ";
	    }
	}
	if ($offset+$perpage<$amount_array["0"]) {
    	    $noffset=$offset+$perpage;
    	    $npoffset = $noffset/$perpage-$middlepage;
    	    if ($npoffset<0) {$npoffset=0;}
    	    if ($npoffset>$maxpoffset) {$npoffset = $maxpoffset;}
	    echo "[<a href=\"$PHP_SELF?offset=$noffset&poffset=$npoffset$adminlink\">></a>] ";
	    echo "[<a href=\"$PHP_SELF?offset=$maxoffset&poffset=$maxpoffset$adminlink\">>></a>] ";        		
		}
    }
    echo "</div></td></tr>\n";
    echo "</table>\n";

    #  Start the Page
    #################################################################################################

    echo "<table align=\"center\"  cellspacing=\"1\" cellpadding=\"3\" width=\"100%\" border=\"0\">\n";
    echo "   <tr>\n";
    echo "     <td class=\"gbheader\">$gb_name</td>\n";
    echo "     <td class=\"gbheader\">$gb_comments</td>\n";
    echo "   </tr>\n";

    #  Get actions for current page
    #################################################################################################

    $result = mysql_db_query($database, "SELECT * FROM guestbook ORDER by id $sort LIMIT $offset, $perpage");
  
	while ($db = mysql_fetch_array($result)) { 


	if ($dateformat=="eu")
 {					// European Date & Timeformat
        $when = strftime("%d.%m.%Y %H:%M", $db["timestamp"]);
    } else {							// US  Date & Timeformat
	$when = strftime("%m/%d/%Y %I:%M %p", $db["timestamp"]);
    }

    if ($db[email]   != "none") {
	$email = "<a href=\"mailto:".$db[email]."\"><img src=\"$image_dir/icons/email.gif\" alt=\"$send_email\" border=\"0\" align=\"right\"></a>";
	} else {
	$email = "";
	}
    if ($db[icq]     != 0)      {
	$icq = "<a href=\"http://wwp.icq.com/scripts/contact.dll?msgto=$db[icq]\"><img src=\"http://wwp.icq.com/scripts/online.dll?icq=" . $db[icq] . "&img=5\" alt=\"$icq_message\" border=\"0\" align=\"right\" height=\"17\"></a>";
	} else {
	$icq = "";
	}
//und so weiter und so weiter...
:confused: :confused:
 
nun, in diesem code-abschnitt des gästebuchs werden die posts gezählt und es wird errechnet wieviele pages nötig sind und angezeigt.

ich würde die posts gerne nummerieren (in aufsteigender reihenfolge). habt ihr vielleicht eine idee wie das gehen könnte. kann doch für euch cracks nicht so ein problem sein.. ;)

das nummerieren wäre ja nicht so schwer, mein problem is jedoch daß die posts auf verschiedene pages verteilt werden.

du hast in meinem vorigen thread gemeint ich müsse nur in einer schleife die posts zählen. nur... in welcher schleife... und wie mach ich das mit den pages. die würfeln meine ganze nummerierung durcheinander...

help!
 
ich würd die Schleife nehmen, die Du abgeschnitten hast... ;);)

Du kennst den $offset und von da an zählst Du einfach hoch, oder??
 
ja das schon. habe schon versucht in der schleife die du meinst mitzählen zu lassen ($entry++; ), aber das problem ist dann, daß ich auf jeder page, die selbe nummerierung habe!

ich verzweifel einfach daran, daß auf jeder page 10 posts stehen! und die nummerierung aber durchgehend sein sollte.

hört sich irgendwie so einfach an, das kann doch kein prob sein... :confused:

auch weiß allerdings auch die gesamtzahl der posts. soll ich die nehmen und den offset davon abziehen und dann erst raufzählen. aber wie genau drücke ich das in code aus? is der offset überhaupt ein int? kann ich den so einfach von etwas subtrahieren? fragen über fragen und keine lösung in sicht...

(...ich armer wicht!)
 
Zuletzt bearbeitet:
Du weisst aber immer, auf welcher Seite du bist, nicht wahr!

Also einfach für die erste Seite $i+10 nehmen und weiter zählen, wenn du auf Seite 2 bist, $i+20 usw, die einzelnen Variabe kannst du dann hochzählen pro Eintrag.

Mir erscheint dein Konstrukt allerdings sehr langwierig zu sein, das geht bestimmt auch kürzer ;)
 
hey! ich idiot!!! das ich daran nicht gedacht habe! die lösung is so simpel, daß sie fast schon genial ist :D

werd ich am nachmittag natürlich gleich austesten...

DANKE, DANKE, DANKE!!!
 
Albu schrieb:

Du kennst den $offset und von da an zählst Du einfach hoch, oder??
wer lesen kann ist klar im Vorteil.... $offset ist / war eine Variable, die Du in Deinem Select (LIMIT $offset, $perpage) verwendest, um die Startposition festzulegen, ab der Du die Datensätze haben möchtest.... dachte eigentlich das wäre klar gewesen... ;)
 
das war auch klar,... nur was bringt mir dieser offset. kann deinen lösungsvorgang nicht so leicht nachvollziehen, albu.

offset von den gesamt-posts abziehen?

habe jetzt zwar schon eine lösung die mir einfach und elegant erscheint, würde mich aber trotzdem interessieren...:)
 
hmmm also $offset ist der erste Datensatz der auf der aktuellen Seite angezeigt wird, oder?
Also ist $offset der Initialisierungswert für Deinen Postzähler, oder?? und wenn Du von da hochzählst, dann passt es doch... dein Recordset enthält ja schließlich nur $perpage Einträge.....
Also ist im Grund alles schon vorhanden, was Du zur Durchnummerierung benötigst, letztlich wird nur $entry = $offset vor der Schleife und $entry++ vor dem Ende der Schleife einzufügen und natürlich ein echo $entry....
Einfacher geht es nun wirklich nicht, oder?
 
das kann ich nachvollziehen. is sonnenklar. genau das hab ich allerdings nach deinem ersten post versucht! hat aber aus irgendeinem grund nicht funktioniert.

bin jetzt leider nicht an meinem pc, werds aber in 2 stunden nochmal versuchen und dann posten...
 
hahahahihihihihohohoho

ICH KNALL DURCH!

es funktioniert zwar aber IN DER FALSCHEN REIHENFOLGE! nun is der erste post nr. 32 und der letzte nr. 1!

DAMN IT!
 
Zuletzt bearbeitet:
ok, des rätsels-lösung (finally):

$entry_all = $amount_array["0"];

dann vor der schleife:

$entry=$entry_all - $offset + 1;

in der schleife:

$entry--;

so. jetzt bin ich zufrieden! thx for your help, guys!
 
Zurück
Oben