Shoutbox Archiv & Automatische Seiten...

Crazy_down

Erfahrenes Mitglied
Hi, ich habe mir eine Shoutbox zusammen gebastelt (sollte wohl der richtig Ausdruck dafür sein *g*).
Ich lasse also einen Namen, das Datum Nachricht etc. in eine MySQL Tabelle eintragen und auf einer Seite immer die 3 neusten Einträge anzeigen.
Ich möchte nun mit einem Link alle Einträge anzeigen lassen, das wäre nicht das Problem aber ich will dann bei 20 Einträgen das er eine Seite automatisch hinzufügt und da erst die nächsten 20 Einträge anzeigt usw.

Was wäre da die simpelste Lösung ?

danke schonmal
ghrüße
crazy_down
 
Also wenn du sowas wie Seitenzahlen sucht, könnte ich sowas anbieten

PHP:
    function doQuery($sql)
    {
        $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        return $result;
    }


$sql = "SELECT
	        	COUNT(*) as Anzahl
	        FROM
	       		Shoutbox
                ";
	$result = doQuery($sql);
	$anzahl = mysql_result($result, 0);

	if (!$anzahl) {
		echo "<p class=\"content\">\n".
	             "Es befinden sich keine Eintr&auml;ge in der Datenbank\n".
	             "</p>\n";
	}
	else {
		$start = isset($_GET['page_number'])?(int)$_GET['page_number']:1;
	        $num_pages = ceil($anzahl/20);
	        if ($start < 1)
	        	$start = 1;
	        if ($start > $num_pages)
	           	$start = $num_pages;
		$offset = ($start-1)*20;

	        echo "<table class=\"smallbold tcontent\" cellpadding=\"0\">\n";
	        echo " <tr>\n";
	        echo "  <td style=\"width:50px; text-align:left; vertical-align:top;\">\n";
	        echo "Seite: \n";
	        echo "  </td>\n";
	        echo "  <td style=\"text-align:left\">\n";
                 for($i=1; $i<=$num_pages; $i++) {
	        	if ($i==$start)
	                	echo $i."\n";
	                else
	                	echo "<a href=\"shoutbox.php&?page_number=".$i."\" style=\"text-decoration:underline;\">".$i."</a>\n";
	        }
	        echo "  </td>\n";
	        echo " </tr>\n";
	        echo "</table>\n";

                 $sql = "SELECT
                                 Nachricht,
                                 Name
                         FROM
                         	Shoutbox
                         ORDER BY
                         	Datum DESC
                         LIMIT
                         	".$offset.", 20
                        ";
		$result = doQuery($sql);
 
Cool danke sehr, das muss ich gleich mal testen.

Noch eine frage, wie kann ich verhinden das HTML codein meiner Shoutbox gebostet wird ? also z.b. das die <> als kommentare oder am besten gar nicht eingetragen werden.

grüße
crazy_down
 
lieber htmlentitites($text, ENT_QUOTES);
damit werden die zeichen immer noch alle dargestellt. kann ja sein, dass ein user gar nich bewusst htmlzeichen benutzt :>
 
bei dem Script von oben bekomme ich folgenden fehler...

Parse error: syntax error, unexpected $end in ../--/--/ on line 63


EDIT: OK habe die fehlende} gefunden ;)
 
Zuletzt bearbeitet:
jo, ich hab ja nach dem sql query abgebrochen ;)

danach kommt ja erst noch die ausgabe deiner Schoutbox einträge und dafür hast bestimmt ein anderes Format als ich ^^
 
Mhh, also Theoretisch müsste ich doch nur noch meine Ausgabe wie bei der Shoutbox machen oder ?

Also einfach mit Echo auswählen was ich anzeigen möchte richtig ?

Wenn ja: Es wird nichts Angezeigt obwohl Einträge vorhanden sind.
Wenn Nein: wie dann ?

*g* danke schonma.
 
du musst natürlich den query anpassen, weil ich nicht wissen kann, wie die spalten deiner datenbank heißen und du musst sowas wie

PHP:
while($row = mysql_fetch_assoc($result)){
    echo htmlentities($row['Nachricht'], ENT_QUOTES);
    echo "<br><br>";
    echo "von ".htmlentities($row['Name'], ENT_QUOTES);
}

schreiben
 
Zurück