Geschrieben von Baronesse am 20.09.2008 um 11:37:
Problem mit Blätterfunktion
Hallöchen,
ich hab ein Problem mit meiner Blätterfunktion. Ich bin dabei eine Seite zu coden, auf der unter anderem die Berichte der Mitglieder angezeigt werden, die wir in einer Tabelle in der Datenbank "berichte" sammeln.
Die Berichte werden nach Seiten eingetragen. Das heißt eine Seite in Word ist ein Eintrag in der Datenbank.
Dabei werden id (automatisch), Titel, Datum, Inhalt, Berichtid und Userid gespeichert.
Die Blätterfunktion, die mir Kopfschmerzen macht ist die die die Berichtetitel blättern soll.
Ich hab es so gemacht, dass es 25 Einträge pro Seite geben soll.
Leider rechnet er nach der ersten Seite nicht weiter. D.h. der 26 Eintrag erscheint einfach nicht auf einer zweiten Seite, die zweite Seite ist leer und der Titel, der ausgegeben werden sollte wird ausgeblendet.
HIer beiße ich mir nun seit mehreren Stunden die Zähne aus und finde den Fehler nicht...
Ich hab mal beide Quelltexte, die der Mitgliederübersicht, die die Mitgliederid übergibt eingestellt und die Übersichtsdatei mit der "defektern" Blätterfunktion.
Mitgliederübersicht:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
<?php
include("db.php");
$sqlturnier = "SELECT * FROM user WHERE Berichte = 'ja' ORDER BY `id` ASC";
$result = mysql_query($sqlturnier) or die("$sqlturnier<hr />" .mysql_error());
while ($row = mysql_fetch_array($result))
{
echo "<a href="uebersicht.php?user&id=".$row[id]."" target="menueberichte"> ".$row[Vorname]."</a></td>";}
?>
|
|
Übersicht:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
|
<?php
$seite = $_GET["seite"]; //Abfrage auf welcher Seite man ist
//Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
if(!isset($seite)){
$seite = 1;
}
//Verbindung zu Datenbank aufbauen
include("db.php");
//Einträge pro Seite: Hier 15 pro Seite
$eintraege_pro_seite = 25;
//Ausrechen welche Spalte man zuerst ausgeben muss:
$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
$userid = $_GET["id"];
$abfrage = "SELECT * FROM `berichte` WHERE `Userid` = '$userid' AND Titel != '' AND Datum NOT LIKE '' order by Datum DESC LIMIT $start, $eintraege_pro_seite ";
$result = mysql_query($abfrage) or die("$sql<hr />" .mysql_error());
while($row = mysql_fetch_array($result)){
$datum = $row[Datum];
$teildatum = explode("-", $datum);
$datum2 = $teildatum[2] . "." . $teildatum[1] . "." . $teildatum[0];
$id=$row[Berichtid];
echo "<a href="javascript:loadFrames('mainberichte','bericht.php?berichte&berichteid=$id', 'bilderberichte', 'bilder.html')"> $datum2 ".$row[Titel]." </a><br/ >";}
echo"<br/ >";
//Jetzt kommt das "Inhaltsverzeichnis",
//sprich dort steht jetzt: Seite: 1 2 3 4 5
//Wieviele Einträge gibt es überhaupt
//Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten
//also der gleiche Text wie in der Variable $abfrage, bloß das hier das LIMIT fehlt
//Sonst funktioniert die Blätterfunktion nicht richtig,
//und hier kann nur 1 Feld abgefragt werden, also id
$result2 = mysql_query("SELECT * FROM `berichte` WHERE `Userid` = '$userid' AND Titel != ''");
$menge = mysql_num_rows($result2);
//Errechnen wieviele Seiten es geben wird
$wieviel_seiten = $menge / $eintraege_pro_seite;
//Ausgabe der Seitenlinks:
echo "<div align="center">";
echo "<b>Seite:</b> ";
//Ausgabe der Links zu den Seiten
for($a=0; $a < $wieviel_seiten; $a++){
$b = $a + 1;
//Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
if($seite == $b){
echo " <b>$b</b> ";
}
//Aus dieser Seite ist der User nicht, also einen Link ausgeben
else {
echo " <a href="?seite=$b&berichteid=$id">$b</a> ";
}
}
echo "</div>";
?> |
|
Weiß einfach nicht mehr weiter, vielleicht könnt ihr mir helfen :s