Avatar billede searchjob Nybegynder
04. november 2006 - 13:18 Der er 4 kommentarer

php paging spm ( simpelt )

hej jeg har hentet et pagin system til php.. men jeg ved ikke hvad jeg skal skrive i min query?!

fx DESC LIMIT 0,15 så viser den jo fra 0,15

hvad skal jeg skrive for at lave det til paging system i dette script?

$cfg['limit'] = 5;
$cfg['pages_each_way'] = 10;

$Tagget = "test";

$total = mysql_result(mysql_query("SELECT COUNT(*) FROM forum WHERE tags LIKE '%" . $Tagget . "%'"),0);

$offset = isset($_GET['page3']) ? $_GET['page3'] : 0; // page3

$start_point = ($offset-($cfg['pages_each_way']*$cfg['limit']) < 0) ? 0 : $offset-($cfg['pages_each_way']*$cfg['limit']);

$end_point = ($offset+($cfg['pages_each_way']*$cfg['limit']) > $total) ? $total : $offset+($cfg['pages_each_way']*$cfg['limit']);

$page_number = ($start_point/$cfg['limit'])+1;

echo "INDHOLD....";

$s.= ($offset >= $cfg['limit']) ? '<a href="' . $url . '/Questions/' . $Tagget . '/'.($offset-$cfg['limit']).'/">&laquo; Forrige side</a> ' : '&laquo; Forrige side ';
for ($start=$start_point;$start<$end_point;$start=$start+$cfg['limit']) {
$s.= ($offset == $start) ? '<b>'.$page_number++.'</b> ' : '<a href="' . $url . '/Questions/' . $Tagget . '/'.$start.'/">'.$page_number++.'</a> ';
}
$s.= ($total > $offset+$cfg['limit']) ? '<a href="' . $url . '/Questions/' . $Tagget . '/'.($offset+$cfg['limit']).'/">Næste side &raquo;</a>' : 'Næste side &raquo;';
Avatar billede udvikler Nybegynder
04. november 2006 - 13:25 #1
Forstår det ikke  helt,

ORDER BY ID DESC LIMIT $cfg['limit'];

Eller hvad?
Avatar billede searchjob Nybegynder
04. november 2006 - 13:48 #2
den skal du vide hvad side den er på hvis den er på side 2
så er det order by id desc limit 5,10

og hvis den er på startside så er det order by id desc limit 0,5

hvordan gøres dette
Avatar billede intenz Novice
04. november 2006 - 15:33 #3
Det er et rimelig uoverskueligt script du har fundet dig her. Og det ligner noget der er lavet til modrewrite, så er ikke helt sikker på du kan bruge det umiddelbart. Med mindre dette er opsat korrekt (på samme måde som scriptet) på din server.

Men din order skal se nogenlunde sådan ud:
order by id desc limit $start,$cfg['limit']

Hvor $start er den side du befinder dig på nu * $cfg['limit'].
F.eks. side 1:
$start * $cfg['limit'] = 5;

Så den starter fra 5 og henter de næste 5.
Avatar billede otis Nybegynder
04. november 2006 - 17:47 #4
Nappet fra en paging gæstebog online.

<?php
$pr_side = 10;
$farve_for_oven = "77000B";
$farve_for_neden = "000000";


$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM guestbook"),0) or die(mysql_error());

$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;

$query = mysql_query ("SELECT name, email, content FROM guestbook ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error());
print "<table width=\"100%\">";
while ($row = mysql_fetch_array($query)) {
    print "<tr><td bgcolor=\"#".$farve_for_oven."\">".htmlspecialchars($row['name'])."</td></tr><tr><td bgcolor=\"#".$farve_for_neden."\">".nl2br(htmlspecialchars(stripslashes($row['content'])))."<br></td></tr>";
}
print "</table>\n<hr>";

if ($vis_fra > 0) {
    $back = $vis_fra - $pr_side;
    print "<a href='index.php?ID=4&lang=da&visfra=$back'>Forrige</a> ";
}

$page = 1;

for ($start = 0; $antal > $start; $start = $start + $pr_side) {
    if($vis_fra != $page * $pr_side - $pr_side) {
        print "<a href='index.php?ID=4&lang=da&visfra=$start'>$page</a> ";
    } else {
        echo $page." ";
    }
    $page++;
}

if ($vis_fra < $antal - $pr_side) {
$next = $vis_fra + $pr_side;
    print " <a href='index.php?ID=4&lang=da&visfra=$next'>Næste</a>";
}
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester