• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Gästebuch auf mehreren Seiten

farchris

Mitglied
Hallo,
ich versuche mein Gästebuch auf mehreren Seiten zu verteilen.
Dazu habe ich testungsweise ein kostenfreies Script gedownloadet:
http://gb.comuse.org/class.pages.txt

Meine gb.php habe ich folgendermaßen angepasst:
| Gästebuch
--> Suche nach: "class.pages.php"

Nun sieht es nach 11 Einträgen so aus:
| Gästebuch

"Seiten (2): [1] 2 nächste »"

Die Seiten werden zwar korrekt aufgeteilt, aber trotzdem stehen immer noch auf der ersten Seite ALLE Einträge. Diese werden also nicht auf die momentan zwei Seiten verteilt (10 Einträge auf der ersten Seite + 1 Eintrag auf der zweiten Seite).

Was ist daran falsch?

Danke für Antworten!
 
Werbung:
Hmm,

ich finde dein Script classpages... ist überflüssig. Arbeite am besten mit LIMIT und GET Variablen.

In die get Variablen kommt denn die Seitenzahl und mit LIMIT kannst du denn Einträge von 1-10, 11-20, 21-30 usw ausgeben.


MfG xXxPeterPanxXx
 
Werbung:
Du iterierst über das falsche Resultset.

gb.txt:94

PHP:
$result = $seiten->query("SELECT * FROM eintraege");

gb.txt:137

PHP:
$anzeige = mysql_query("SELECT * FROM eintraege ORDER BY ID DESC");

Nur das erste Resultset kommt von der pages-Klasse.
 
Hallo, danke.
Ich habe nun den Code aus Zeile 137 gelöscht und den kompletten aus Zeile 94 eingefügt. Jede Seite hat nun 10 Einträge, allerdings ohne Inhalt.

Code:
<?php
/* laden und initialisieren der Klasse */
require_once 'class.pages.php';
$seiten = new pages;

/* Setzten einiger Einstellungen und Absetzen des Query */
$seiten->eintraege_pro_seite = 10;
$result = $seiten->query("SELECT * FROM eintraege ORDER BY ID DESC");

/* Ausgabe der Seitenlinks */
echo $seiten->link_string;

while($daten = mysql_fetch_row($result))
{

echo "<p class=\"info\">";
$name = $daten['Name'];
...
...

Was ist daran falsch?
 
Zuletzt bearbeitet:
Werbung:
Bevor wir hier weiter rumstochern: Kannst du mal einen SQL-Dump deiner Datenbank oder deines Datenbankschemas (Aufbau der Tabellen) posten, damit man das lokal rekonstruieren kann?
 
Hallo, danke, hier der SQL Dump:
Code:
-- phpMyAdmin SQL Dump
-- version 2.8.2.4
-- http://www.phpmyadmin.net
-- 
-- Host: localhost:3306
-- Erstellungszeit: 15. Januar 2010 um 00:35
-- Server Version: 5.0.51
-- PHP-Version: 5.2.6
-- 
-- Datenbank: `gb`
-- 

-- --------------------------------------------------------

-- 
-- Tabellenstruktur für Tabelle `eintraege`
-- 

CREATE TABLE `eintraege` (
  `ID` int(10) unsigned NOT NULL auto_increment,
  `Name` text NOT NULL,
  `EMail` text NOT NULL,
  `Text` longtext NOT NULL,
  `Datum` text NOT NULL,
  `time` time NOT NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

-- 
-- Daten für Tabelle `eintraege`
--

Und hier die aktuelle gb.php:
http://gb.comuse.org/gb.txt
sowie die class.pages.php:
http://gb.comuse.org/class.pages.txt
 
Ich schlage vor, du änderst deine Tabelle auf:

Code:
CREATE TABLE IF NOT EXISTS `eintraege` (
  `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `Name` varchar(255) NOT NULL,
  `EMail` varchar(255) NOT NULL,
  `Text` longtext NOT NULL,
  `Datum` datetime NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

Query:

PHP:
$result = $seiten->query("SELECT * FROM eintraege ORDER BY `Datum` DESC");

Schleife:

PHP:
while($daten = mysql_fetch_assoc($result)) {

Bei mir klappt es so. Ich hoffe, ich habe nichts vergessen.

Dein Code ist insgesamt wie gesagt etwas unübersichtlich. Du solltest dich an das EVA-Prinzip halten. Erst Abhandlung/Verarbeitung der Eingaben (z. B. Daten aus Datenbank holen), dann Ausgabe (HTML-Code erzeugen und simple echos, keine wesentliche Logikprogrammierung mehr).
 
Werbung:
Zurück
Oben