Problem mit Tutorial GB auf mehrere Seiten verteilen

Zer0QL

Grünschnabel
Servas,

nun wo soll ich beginnen? Erstmal möchte ich anmerken das ich die Suche schon genutzt habe aber jedoch blind war oder keine Antwort gepasst hat, falls ich was übersehen haben sollte so Entschuldigt vielmals.

Seit einiger Zeit versuche ich PHP mittels eines Buches so lernen, bisher klappt das auch alles recht gut so habe ich z.B. ein funktionierendes Gästebuch programmiert und auch schon ein wenig Ausgebaut. Nun wollte ich eine Blätterfunktion einbauen und habe bei euch das geniale Tutorial von Dunsti gefunden siehe hier

Dieses funktioniert auch soweit sehr gut nur das meine Einträge nicht angezeigt werden:confused:

Ich poste euch hier mal meinen php Code:
PHP:
<?php

include("******.php");

$proseite=10;

$sql = "SELECT * FROM guestbook2";
$result = mysql_query($sql,$dz);
$number = mysql_num_rows($result);
$seiten=floor($number/$proseite);
$start=$page * $proseite;
$sql="SELECT * FROM guestbook2 LIMIT $start,$proseite";
$result = mysql_query($sql,$dz);
$ende = $start + $proseite;



function PostVar($variablen_name) {
	$ergebnis = $_POST[$variablen_name];
	if (get_magic_quotes_gpc()) $ergebnis = stripslashes($ergebnis);
	return trim($ergebnis);
}

function format ($text) {
	$ergebnis = htmlentities($text);
	$ergebnis = str_replace("\r\n\r\n","<br><br>",$text);
	return $ergebnis;
}
$anzeigen = true;

$ip = $_SERVER['REMOTE_ADDR'];

if (empty($_POST)) $fehler = "";
else {
	$grenzwert = 1000;
	$eintrag = PostVar("eintrag");
	$autor = PostVar("autor");
	$website = PostVar("website");
	$status = $_POST['status'];
	if (empty($eintrag)) $fehler .= "<li>Der Eintrag ist leer</li>";
	if (empty($autor)) $fehler .= "<li>Sie haben keinen Namen eingetragen</li>";
	if (isset($_POST['email']) && $_POST['email']) $fehler .= "<li>Sie haben eine EMail Adresse eingetragen</li>";
	if (strlen($eintrag) > $grenzwert) $eintrag = substr($eintrag,0,$grenzwert);
	if (!strpos($eintrag," ") || strpos($eintrag," " > 60)) $eintrag = wordwrap($eintrag, 60, " ", 1);
}
?>

<html>
<head>
<link rel="stylesheet" type="text/css" href="design/design.css">
<title>In Gedenken an Wolfgang Sch&uuml;tz - G&auml;stebuch</title>
</head>

<body>
<div align="center">
<table width="95%" border="0">
	<tr>
		<td width="20%" valign="top" align="center">
<p>
<img src="images/muecke_rahmen.png" alt="Wolfgang M&uuml;cke Sch&uuml;tz" title="Wolfgang M&uuml;cke Sch&uuml;tz" /><p>
<a href="rueckblick.html"><img src="images/menue/rueckblick2.jpg" alt="Rueckblick" title="R&uuml;ckblick" border="0"></a><br />
<a href="unfall.html"><img src="images/menue/unfall2.jpg" alt="Unfall" title="Unfall" border="0"></a><br />
<a href="foto/index.html"><img src="images/menue/fotoalbum2.jpg" alt="Fotoalbum" title="Fotoalbum" border="0"></a><br />
<a href="gedichte.html"><img src="images/menue/gedichte2.jpg" alt="Gedichte" title="Gedichte" border="0"></a><br />
<img src="images/menue/gaestebuch2.jpg" alt="G&auml;stebuch" title="G&auml;stebuch" border="0"><br />
<a href="guestbook.php"><img src="images/menue/kerze2.jpg" alt="Kerze anz&uuml;nden" title="Kerze anz&uuml;nden" border="0"></a><br />
<a href="ingedanken.html"><img src="images/menue/ingedanken2.jpg" alt="in Gedanken" title="in Gedanken" border="0"></a><br />
<a href="impressum.html"><img src="images/menue/impressum2.jpg" alt="Impressum" title="Impressum" border="0"></a><br />
</p>
		</td>
		<td width="80%">
<div align="center"><h1><a name="sprung1">G&auml;stebuch</a></h1>
</p>
<?
if ($ende>$number) {$ende = $number;}
echo "Zur Zeit sind $number Eintr&auml;ge im G&auml;stebuch <br /> \n";
echo "Seite $page - Eintr&auml;ge von $start bis $ende <br /><br /> \n";
?>
<a href="#sprung2">zum Eingabeformular</a>
<?
if (!empty($fehler)) {
	$anzeigen = false;
	echo "<p><b>Leider konnte ihr Beitrag nicht angenommen werden:</b></p>";
	echo "<ul>$fehler</ul>";
} elseif ($status == "Vorschau") {
	$anzeigen = false;
	$datum = date("\a\m j. n. Y \u\m H:i");
?>
<h3>So sieht ihr eintrag derzeit aus:</h3>
<hr width="75%" noshade>
<p><?=format($eintrag)?></p>
<p>
<small>
<b><?=htmlentities($autor),", $datum"?></b><br />
<b><?=htmlentities($website)?></b>
</small>
</p>
<hr width="75%" noshade>
<p>
<b>Um ihren Eintrag zu bearbeiten, benutzen sie bitte das Formular.</b>
</p>
<?
} elseif ($status =="Eintragen") {
	$query = "INSERT INTO guestbook2 SET
	datum = now(),
	eintrag = '".addslashes(htmlspecialchars($eintrag))."',
	autor = '".addslashes(htmlspecialchars($autor))."',
	website = '".addslashes(htmlspecialchars($website))."',
	ip = '".addslashes($ip)."'
	";
	$sql = mysql_query($query)
		or die(mysql_error());
	mail("jensmichael@chello.at","Es gibt einen neuen GB Eintrag","von: $autor    Eintrag: $eintrag");
}

if ($anzeigen) {
	$query = "SELECT DATE_FORMAT(datum,'am %d.%m.%Y um %k:%i') AS datum, eintrag, autor, website FROM guestbook2 ORDER BY datum DESC";
	$sql = mysql_query($query)
		or die(mysql_error());
	while ($ds = mysql_fetch_object($sql)) {
		$eintrag = $ds->eintrag;
		$autor = $ds->autor;
		$website = $ds->website;
		$datum = $ds->datum;
?>
<p>
<table border="0" width="90%">
	<tr>
		<td colspan="2">
Eingetragen von <b><?=htmlentities($autor)?></b><?=", $datum" ?><br />
<b><a href="<?=htmlentities($website)?>" target="_blank"><?=htmlentities($website)?></a></b>
		</td>
	<tr>
		<td width="50">&nbsp;</td>
		<td valign="top">
<?=format($eintrag)?>
		</td>
	</tr>
</table>
</p>
<hr width="75%" noshade>
<?
	}
	unset($eintrag,$autor,$website);
}
?>

Wenn ich nun anstatt
PHP:
Eingetragen von <b><?=htmlentities($autor)?>
folgendes eingebe wie von Dunsti beschrieben:
PHP:
while ($row = mysql_fetch_array($result)) {
    echo "Eintrag von: ".$row['autor']." <br /> \n";

So erhalte ich 10mal untereinander Eintrag von: ohne das der Autor dahinter genannt wird.

Tja wies aussieht kann ich wohl noch nicht genug PHP um den Fehler alleine zu beheben, denn ich hänge da nun schon mehrere Tage ohne Erfolg drann.

Vielleicht kann mir einer von euch erklären wie ich das hinbekomme das er mir doch den Autor nennt
Schon mal vielen Dank im voraus

LG Zer0QL
 
1.
PHP:
$sql = "SELECT * FROM guestbook2";
$result = mysql_query($sql,$dz);
$number = mysql_num_rows($result);
ändern in:
PHP:
$sql = "SELECT count(*) as anzahl FROM guestbook2";
$result = mysql_query($sql,$dz);
$row=mysql_fetch_array($result);
$number = $row[0];
Das verhindert das bei jedem Aufruf erst ALLE Daten abgerufen werden nur um die Anzahl der DS zu ermitteln. SELECT count(*) kann von MySQL direkt aus dem Cache bedient werden und ist zigtausend mal schneller.

2.
$row['autor'] ist entweder leer, oder die Spalte existiert nicht
 
Zurück