Script-Problem: Weiße Seite

Moin,

und zwar gehts um folgenden Code:

[code]

::: PHP - Project Two ::: <?php include('dbconnect.php');?> <?php

$ErgebnisseProSeite = 10;?>

<?php if(!isset($_REQUEST['AktuelleSeite'])) { $AktuelleSeite=0; } else { $AktuelleSeite=$_REQUEST['AktuelleSeite']; } $resultat=mysql_query("SELECT * FROM schule ORDER BY id DESC LIMIT $AktuelleSeite, $ErgebnisseProSeite"); $Anzahl=mysql_num_rows(mysql_query("SELECT * FROM schule ORDER BY id DESC")); echo""; for($i=0; $i<mysql_num_rows($resultat); $i++) { $uebermich=mysql_fetch_object($resultat); echo"", "", "", "", "", "", "", "", "", "", ""; } echo "
", $schule->typ, "
", $schule->datum, "
", $schule->fach, "
", nl2br($schule->kommentar), "

"; if($Anzahl>$ErgebnisseProSeite) { $Seiten=intval($Anzahl/$ErgebnisseProSeite); if($Anzahl%$ErgebnisseProSeite) { $Seiten++; } echo"Seite "; } for($i=1; $i<=$Seiten; $i++) { echo"$i "; } ?> [/code]

Die Tabelle wird ausgegeben, jedoch nicht die ausgelesenen Daten …

Woran kann das liegen?

Ich find den Fehler nicht…

hi, probiers damit:

[code]

::: PHP - Project Two ::: <?php include('dbconnect.php');

$ErgebnisseProSeite = 10;

if(!isset($_REQUEST[‘AktuelleSeite’]))
{
$AktuelleSeite=0;
}
else
{
$AktuelleSeite=$_REQUEST[‘AktuelleSeite’];
}

$resultat=mysql_query(“SELECT * FROM schule ORDER BY id DESC LIMIT $AktuelleSeite, $ErgebnisseProSeite”);
$Anzahl=mysql_num_rows(mysql_query(“SELECT * FROM schule ORDER BY id DESC”));

echo"<table width=“300” border=“0”>";

while($row = mysql_fetch_object($resultat)) {
echo “

”,
"",
$row->typ,
"
",
"",
"",
$row->datum,
"",
"",
$row->fach,
"",
"",
"",
nl2br($row->kommentar),
"",
"",
"",
"
",
"";
}
echo “”;

if($Anzahl>$ErgebnisseProSeite)
{
$Seiten=intval($Anzahl/$ErgebnisseProSeite);
if($Anzahl%$ErgebnisseProSeite)
{
$Seiten++;
}
echo"Seite “;
}
for($i=1; $i<=$Seiten; $i++)
{
echo”<a href=“index.php?AktuelleSeite=”,
($i-1)*$ErgebnisseProSeite,
"">$i ";
}

?>

[/code]

Danke,

aber der Code funktioniert leider auch nicht - gleiches Problem erneut.

Datensätze sind aber in der Datenbank vorhanden… :frowning:

Das meiste ist gleich wie bei meinem Vorposter, bis auf die Änderung zur Bestimmung der Seitenanzahl. ceil() rundet auf, ist also $Anzahl/$ErgebnisseProSeite keine ganze Zahl, wird auf die nächste aufgerundet.
Zur Lösung des Problems habe ich einmal die Zeile mit print_r() hinzugefügt, das sollte dir das ganze Object ausgeben.
Hast du bei den Spaltennamen auf Groß/Kleinschreibung geachtet?

[code]

::: PHP - Project Two ::: <?php include('dbconnect.php'); $ErgebnisseProSeite = 10;

if(!isset($_REQUEST[‘AktuelleSeite’]))
{
$AktuelleSeite=0;
}
else
{
$AktuelleSeite=$_REQUEST[‘AktuelleSeite’];
}

$resultat=mysql_query(“SELECT * FROM schule ORDER BY id DESC LIMIT $AktuelleSeite, $ErgebnisseProSeite”);
$Anzahl=mysql_num_rows(mysql_query(“SELECT * FROM schule ORDER BY id DESC”));

echo"<table width=“300” border=“0”>";
while($schule=mysql_fetch_object($resultat))
{
print_r($schule);
echo"

",
"",
$schule->typ,
"
",
"",
"",
$schule->datum,
"",
"",
$schule->fach,
"",
"",
"",
nl2br($schule->kommentar),
"",
"",
"",
"
",
"";
}
echo “”;

if($Anzahl>$ErgebnisseProSeite)
{
$Seiten=ceil($Anzahl/$ErgebnisseProSeite);
echo"Seite “;
}
for($i=1; $i<=$Seiten; $i++)
{
echo”<a href=“index.php?AktuelleSeite=”,
($i-1)*$ErgebnisseProSeite,
"">$i ";
}

?>

[/code]

@ Gruftkruemel

wenn du nur eine weisse Seite angezeigt bekommst kannst du auch:

error_reporting(E_ALL);

Dir eventuelle Fehler anzeigen lassen :wink:

Zum bugfixen immer sehr gut zu gebrauchen :smiley:

Gruss Six

Ah… :ps:

Ich hab den Fehler bei meinem Code gefunden - einfach eine falsche Variable…

Vielen Dank steditor… du hattest sie geändert und nach vergleichen ist es mir nun auch aufgefallen…

Danke für die Mühe…

Nun noch eine andere Frage:

Wie kann ich es mit einbinden, dass die ganzen Einträge nach dem eingetragenen Datum (also nicht, wann sie eingetragen wurden, sondern das das Datum, welches im Formular eingetragen wurde) sortiert werden?

Wie hast du das Datum in der Datenbank gespeichert?
Eigentlich ganz einfach mit:

$resultat=mysql_query("SELECT * FROM schule ORDER BY datum DESC LIMIT $AktuelleSeite, $ErgebnisseProSeite");

Das Datum wird ja als Textform gespeichert…

Es wird ja nicht nach Tag, Monat & Jahr aufgesplittet, von daher sortiert er in dem Falle, wenn ich nach “datum” sortieren lasse, erst den Tag, dann den Monat und dann das Jahr…

Dh, dass er mir den 21.2 vor dem 28.1. anzeigt…

und das ist ja dann nicht ganz gewollt…

Gibts da eine Lösung dafür?

Du musst das Datum anders Speichern, entweder in der Reihenfolge YYYY-MM-DD, oder als Unixtime.
Die aktuelle Unixzeit kannst du mit time(); abfragen, um ein eingegebenes Datum umzuwandeln benützt du einfach mktime();
Wie man diese Funktion benutzt, steht hier:
de.php.net/manual/de/function.mktime.php

Hier das Script für das Datum:
Angenommen, beim Erstellen des Eintrags hast du ein Textfeld, in das du das Datum in der Form Tag-Monat-Jahr (alles in Zahlen) schreibst. Zum Umwandeln benutzt du dann das hier:

$date = $_POST['datum'];
$date = explode('-',$date);
$unix = mktime(0,0,0,$date['1'],$date['0'],$date['2']);

Zum zurückwandeln benutzt du das hier:

echo date('d.m.Y',$schule->datum);