PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Php Blätterfunktion - Ich darf kein MySQL benutzen


steinideluxe
01.01.2010, 16:54:57
Ich habe folgendes Problem:

Ich soll für mein Studium im Fach Php - Grundlagen ein Gästebuch erststellen. Dies habe ich soweit auch geschafft. Hab jetzt nur noch ein Problem mit der Blätterfunktion. Ich weiss nicht wie ich es schaffe das die Variable $seite, die aktuelle Seitenzahl ausgibt. So hier kommt jetzt der Script, falls ihr noch mehr Fehler findet, sagt mir bitte bescheid. Ich bin für jede Hilfe dankbar!


$eintraege_pro_seite = 10; // Beiträge pro Seite
$zaehler=count($beitrag); //Anzahl der Beiträge
$seite=?

//Errechnen wieviele Seiten es geben wird
$wieviel_seiten =$zaehler / $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\">$b</a> ";
}
}

DokuLeseHemmung
01.01.2010, 17:11:17
Schau dir doch mal das superglobale $_GET Array an....

steinideluxe
02.01.2010, 16:14:35
Das hat mir noch nicht so richtig geholfen.

Also ich habe $seite wie folgt beschrieben.

$seite=$_GET["seite"];

Und jetzt meldet der Browser:

Notice: Undefined index: seite in /Users/steingroever/Desktop/Website/Sites/gbuch.php on line 79

line 79 ist die Definition: $seite=$_GET["seite"];

Wie muss ich das jetzt definieren?

DokuLeseHemmung
02.01.2010, 17:03:45
Wenn du $_GET zu dem Zeitpunkt überprüft hättest, dann würde dir klar sein, dass $_GET['seite'] zu dem Zeitpunkt nicht existiert.
Zum überprüfen ob eine Variable existiert ist isset() erfunden worden.
Alternativ würdest du auch mit array_key_exits() weiter kommen.

Also:
Durch lesen des PHP Handbuches kann man sehr weit kommen.

steinideluxe
02.01.2010, 17:20:23
Das hab ich schon gemacht mit dem isset(). Der zeigt mir dann allerdings an das es existiert. Aber der Fehler wird trotzdem angezeigt? Also wenn mir jemand helfen könnte wäre ich sehr dankbar.

Achso und das php.net Handbuch gehe ich durch allerdings hilft mir das grad irgendwie nicht. Trotzdem danke für den Tip.

cortex
02.01.2010, 17:23:20
vorschlag zu problemlösung:

per isset( ) existenz der fraglichen variable prüfen

a) FALSE: abbruch o.ä.
b) TRUE: von variable abhängigen code ausführen

cx

DokuLeseHemmung
02.01.2010, 18:02:32
Das hab ich schon gemacht mit dem isset(). Der zeigt mir dann allerdings an das es existiert. Aber der Fehler wird trotzdem angezeigt?
Kann nicht sein.....
Aber da die Versuche geheim bleiben, kann ich dir leider nicht sagen, wo du den Bock geschossen hast.

steinideluxe
02.01.2010, 19:35:15
Was muss ich denn machen wenn es false ergibt?

vt1816
02.01.2010, 19:38:00
Was muss ich denn machen wenn es false ergibt?

Zum Beispiel einen Standardwert definieren ...

cortex
02.01.2010, 19:59:25
Ich bin Student [...]

sollte das eine entschuldigung sein? was studierst du bitteschön?

cx

steinideluxe
02.01.2010, 20:10:19
So ich bin jetzt soweit das mein Script ohne Fehler funktoniert. Allerdings habe ich das Problem, das mir unter den verschiedenen Links der Blätterfunktion immer alle und immer die gleichen Einträge angezeigt werden. Könnt Ihr mir sagen was ich vergessen habe? Danke!


include "config.php";

krsort($beitrag); //Durch krsort werden alle Beiträge in umgekeherter Reihenfolge sortiert (hier kommt neuste Beitrag zuerst.)

foreach($beitrag as $key => $ausgabe) //Das bedeutet $beitrag ist $ausgabe.
{
$zerlegen = explode("|", $ausgabe); //$zerlegen ist eine Variable
// explode teilt die Werte auf $ausgabe mit | auf

if($key%2 == 0){
echo "<table align='center' border='0' border-colcellspacing='0' cellpadding='5' width='80%'>
<tr>
<td bgcolor='#fff'>
Von $zerlegen[0] Geschrieben am: $zerlegen[1] Uhr
</td>
</tr>
<tr>
<td bgcolor='#fff'>
$zerlegen[2]
</td>
</tr>
</table></br><br/>";
}elseif($key%2 == 1){
echo "<table align='center' border='0' cellpadding='5' width='80%' border-colcellspacing='0'>
<tr>
<td bgcolor='#999'>
Von $zerlegen[0] Geschrieben am: $zerlegen[1] Uhr
</td>
</tr>
<tr>
<td bgcolor='#999'>
$zerlegen[2]
</td>
</tr>
</table></br><br/>";
}
}


$eintraege_pro_seite = 10; // Beiträge pro Seite
$zaehler=count($beitrag); //Anzahl der Beiträge
$seite=isset($_GET['seite'])?(int)$_GET['seite']:1;

//Errechnen wieviele Seiten es geben wird
$wieviel_seiten =$zaehler / $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\">$b</a>";
}
}