Gästebuch seiten 0 1 2 wie kann ich bei 1 starten?

Alles, was PHP betrifft, kann hier besprochen werden.

Gästebuch seiten 0 1 2 wie kann ich bei 1 starten?

Postby Dominikw88 » 05. January 2007 21:08

Hallo,
ich habe ein gästebuch mit php gemacht mit hilfe einer sql datenbank
nun würde ich gerne ab einer bestimmten anzahl von einträgen eine neue Seite generieren und dort die weiten einträge anzeigen.
zb bei 5 einträgen eine seite bei 6 dann zwei seiten und bei 15 dann 3 seiten und das soll dann von selbst passieren.
ich hoffe ihr wisst was ich meine

bin soweit gekommen:
$result = mysql_query($sql) OR die(mysql_error());

$eintraege=mysql_num_rows($result);

hier zähle ich die einträge in der datenbank

$ErgebnisseProSeite=5;
und hier bestimm ich halt den inhalt der variable

if($eintraege > $ErgebnisseProSeite)
{}

hier überprüf ich das dann aber ich weiß net wie ich weiter machen soll?
ich hoffe ihr könnt mir helfen
Last edited by Dominikw88 on 07. January 2007 21:24, edited 2 times in total.
Dominikw88
 
Posts: 21
Joined: 05. January 2007 20:49

Postby martinpre » 05. January 2007 22:42

Da nimmst du zB gastebuch.php?seite=XY

$limit = 5 * ($_GET['seite']-1);

dann $sql = "SELECT * FROM `gastebuch` LIMIT ".$limit.",".($limit+4).";
und mysql_query($sql);

und dann einfach alles was da entsteht per echo ausgeben und dann noch links reinsetzen für seite +/- 1

So das sollte passen ;) (keine Haftung, aber wenns net geht, der Denkanstoß sollte da sein ;))
martinpre
 
Posts: 405
Joined: 22. May 2006 16:14
Location: Nähe Tulln / Österreich

Postby Dominikw88 » 05. January 2007 22:55

ich muss sagen das ich das leider nicht peile denn ich bin noch ein ziemlicher anfänger deshalb weiß ich hier und da nur ein bisschen bescheid es reicht gerade so um mir mit hilfe von ein paar tutorials das gewünsche zusammen zu bauen man muss mir hier und da dann doch etwas mehr unter die arme greifen damit ich weiter komm
also ich bitte um weitere hilfestellungen vielleicht hab ich es dann ja mal so drauf wie ihr :D
Dominikw88
 
Posts: 21
Joined: 05. January 2007 20:49

Postby martinpre » 05. January 2007 23:08

Naja du baust die GET Var $_GET['seite'] an (Aufruf dann über dateiname.php?seite=nezahl)

Dann berechnest du das Limit ($limit = 5 * ($_GET['seite']-1); )

Seite 1 -> 0
Seite 2 -> 5
Seite 3 -> 10
...
Das ist der Starteintrag

Den Befehl SELECT wirst du ja kennen ;)
also $sql = "SELECT * FROM `gastebuch` LIMIT ".$limit.",".($limit+4);
SELECT * From `Bla` ist ja klar ;) das LIMIT gibt an wieviele Datensätze 'selected' werden.
Also
Seite 1 -> 0-4
Seite 2 -> 5-9
Seite 3 -> 10-14
...

Da fällt mir ein für ein Gästebuch wirst du die EInträge wahrscheinlich nach der Zeit sotiert haben wollen -> kleine Änderung ^^

also $sql = "SELECT * FROM `gastebuch` LIMIT ".$limit.",".($limit+4)." ORDER BY `zeit` DESC";

Das ORDER BY Sortiert das ganze, und da wir die neuesten haben wollen DESC (absteigend)

dann mit mysql_query abfragen und dann zB per while Schleife alles ausgeben ;)
martinpre
 
Posts: 405
Joined: 22. May 2006 16:14
Location: Nähe Tulln / Österreich

Postby Dominikw88 » 05. January 2007 23:27

gelöscht
Last edited by Dominikw88 on 06. January 2007 17:47, edited 1 time in total.
Dominikw88
 
Posts: 21
Joined: 05. January 2007 20:49

Postby Dominikw88 » 06. January 2007 02:42

Hallo ich habe jetzt einen code der so aussieht und der auch funktioniert nur zeigt er unten dann an bei den seiten : 0 1 next
aber es gibt ja keine seite 0 sondern nur 1 2 next so sollte das aussehen aber ich hab schon viel mit den zahlen rumgespielt aber das nie hinbekommen ich glaube der fehler liegt im letzten teil des codes aber ich sehe ihn wohl net für hilfe wäre ich dankbar
hier der ganze code:

Code: Select all
<?php

$sqlhost="localhost";
$username="root";
$passwort="";
$database="gb";
$proseite="10";


$db = mysql_connect ($sqlhost,$username,$passwort);
mysql_select_db ($database);
$sql = "SELECT * FROM `gaestebuch`";
$result = mysql_query($sql,$db);
$number = mysql_num_rows($result);

$seiten=floor($number/$proseite);

$start=$_GET['page'] * $proseite;
$sql="SELECT * FROM gaestebuch LIMIT $start,$proseite";
$result = mysql_query($sql,$db);
$ende = $start + $proseite;
if ($ende>$number) { $ende = $number; }


echo "Zur Zeit sind $number Einträge im Gästebuch <br /> \n";
echo "Seite $page - Einträge von $start bis $ende <br /> \n";
while ($row = mysql_fetch_array($result))
   {
        echo "<div class=\"gb-eintrag\">\n";
        echo "    <div class=\"Kopfdaten\">\n";
        if(trim($row['Email']) == "") {
            echo $row['Name'];
        } else {
            echo $row['Name'];
           
        }
       

        echo " schrieb am ".$row['Datum']."\n";
        echo "    </div>\n";
        echo "    <div class=\"Inhalt\">\n";
        echo "        ".nl2br($row['Inhalt'])."\n";
        echo "    </div>\n";
        echo "</div>\n";
        echo "<a href=\"mailto:".$row['Email']."\">".$row['Email']."</a>\n";
   
   
    if(trim($row['Homepage']) != "") {
            if(strtolower(substr($row['Homepage'], 0, 7)) == "http://") {
                // Wenn der Teilstring gleich "http://" ist, so
                // soll er den Link ohne "http://" erzeugen, denn
                // der Steht ja schon drin
                echo " <a href=\"".$row['Homepage']."\"></a>";
            } else {
                // Wenn nicht, so soll er das "http://" manuell hinzufügen
                echo " <a href=\"http://".$row['Homepage']."\">".$row['Homepage']."</a>";
            }
        }
   
   
   
    }
   
     
   
    if ($_GET['page']>0) {
    $i=$_GET['page']-1;
    echo "<a href=\"guestbook.php?page=".$i."\">&lt;previous</a>";
}
for($i=0; $i<=$seiten; $i++) {
    if ($i==$_GET['page']) {
        echo $i."&nbsp;";
    }
    else {
        echo "<a href=\"guestbook.php?page=".$i."\">$i</a>&nbsp;";
    }
}
if ($_GET['page']<$seiten) {
    $i=$_GET['page']+1;
    echo "<a href=\"guestbook.php?page=".$i."\">next&gt;</a>";

 
?>
Dominikw88
 
Posts: 21
Joined: 05. January 2007 20:49

Postby Dominikw88 » 06. January 2007 20:30

Bitte helft mir bei meinen letzten problem das ist das letze was noch fehlt und dann ist es eigentlich fertig mein gästebuch
Dominikw88
 
Posts: 21
Joined: 05. January 2007 20:49

Postby martinpre » 06. January 2007 20:37

Da hast du den Fehler:

for($i=0; $i<=$seiten; $i++) {
if ($i==$_GET['page']) {
echo $i."&nbsp;";
}
else {
echo "<a href=\"guestbook.php?page=".$i."\">$i</a>&nbsp;";
}
}

$i startet mit 0 ...
martinpre
 
Posts: 405
Joined: 22. May 2006 16:14
Location: Nähe Tulln / Österreich

Postby Dominikw88 » 06. January 2007 20:59

ich hab i auch schon mit 1 starten lassen aber das geht trotzdem nicht
dann fängt es zwar bei 1 an aber die seite 1 ist dann eigentlich die seite 2 also zeigt die einträge von 11 bis 20 an und nicht von 1-10
oben in der url steht auch immer

http://127.0.0.1/gb.php?page=0

aber page 0 muss ja zu 1 werden damit es geht und dort habe ich schon so viel versucht un mit den zahlen rumgespielt und so aber es geht nie richtig
ich finde den fehler einfach net saß da schon echt lange vor und hab vieles durchgespielt aber am ende fehlt mir dann wohl doch das verständnis aber dazu mach ich das ja also brauche ich nun etwas professionelle hilfe
Dominikw88
 
Posts: 21
Joined: 05. January 2007 20:49


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests