Avatar billede cot Nybegynder
25. december 2007 - 20:50 Der er 4 kommentarer og
1 løsning

Tilføj paging til script

Hej jeg har siddet og rodet lidt med at få paging inkluderet i følgende script:

<?php

$conn=mysql_connect($server,$dbuser,$dbpass);
$q="select * from linkslinks where catno='$v'";
$r=mysql_db_query($dbname,$q,$conn);

    while($row=mysql_fetch_array($r)) {

echo "<td colspan=\"2\" class=\"style1\">
<tr>
<td>
</td>
<td>
<p>
<a href=\"count.php?a=$row[uid]\">$row[name]</a><br>
<small>$row[description]</small>
</p>
</td>
<td align=\"left\">
$row[hits]
</td>
</tr>
</td>";
    }
?>
</table>

Hvis du kan hjælpe er pointene din, der skal vises 8 posts på hver side, og der skal være [1] [2] osv. plus næste/forrige links

BTW. er det bare et lille udpluk fra min side...
Avatar billede nielschristiansen Nybegynder
25. december 2007 - 21:03 #1
<?
$pagesize = 10; //Hvor mange brugere vi vil vise på hver side.

if (empty($_GET[start])) { // hvis $_GET[start] ikke er sat bliver $start 0 ellers $_GET[start]
$start = 0;
} else {
if (is_numeric($_GET[start])) {
$start = $_GET[start];
} else {
$start = 0;
}
} ?>


Dernæst kan vi uden de store problemer konstruere vores database kald:

<?
$data = mysql_query("SELECT * from brugere LIMIT $start,$pagesize");
?>


Når det så er gjort skal vi udskrive vores medlemmer, hvilket kan gøres på følgende måde:

<?
while ($row = mysql_fetch_array($data)) { //while til at køre alle poster igennem
echo $row[brugernavn]."<br>";
}
?>


Nu skal vi til den del som kan være lidt tricky. Først skal vi finde ud af hvor mange sider der er, og så lave et link til dem, således at det er muligt at hoppe fra side til side. Det høres ved at dividere antallet af poster med størrelsen på siderne og så runde det op til nærmeste hele tal ved hjælp af PHP funktionen "ceil".


<?
$pages = ceil(mysql_num_rows(mysql_query("SELECT id from medlemmer"))/$pagesize);
?>


Herefter skal vi lave en løkke som laver et link til samtlige sider, og laver den side vi er på nu fed i oversigten:


<?
for ($i = 1; $i <= $pages; $i++) {
$startnow = $pagesize*$i;
$startnow = $startnow-$pagesize;
if ($startnow == $start) {
$sidehtml .= "<a href='medlemmer.php?start=$startnow'>$i</a>";
}else{
$sidehtml .= "<a href='medlemmer.php?start=$startnow'>$i</a>";
}
}
?>


Og til sidst skal vi udskrive sideoversigten:

<?
echo "Gå til side: ".$sidehtml;
?>


Den samlede kode vil så komme til at se således ud:

<?
$pagesize = 10; //Hvor mange brugere vi vil vise på hver side.

if (empty($_GET[start])) { // hvis $_GET[start] ikke er sat bliver $start 0 ellers $_GET[start]
$start = 0;
} else {
if (is_numeric($_GET[start])) {
$start = $_GET[start];
} else {
$start = 0;
}
}
$data = mysql_query("SELECT * from brugere LIMIT $start,$pagesize");
while ($row = mysql_fetch_array($data)) { //while til at køre alle poster igennem
echo $row[brugernavn]."<br>";
}
$pages = ceil(mysql_num_rows(mysql_query("SELECT id from medlemmer"))/$pagesize);
for ($i = 1; $i <= $pages; $i++) {
$startnow = $pagesize*$i;
$startnow = $startnow-$pagesize;
if ($startnow == $start) {
$sidehtml .= "<a href='medlemmer.php?start=$startnow'>$i</a>";
}else{
$sidehtml .= "<a href='medlemmer.php?start=$startnow'>$i</a>";
}
}
echo "Gå til side: ".$sidehtml;
?>
Avatar billede cot Nybegynder
25. december 2007 - 21:08 #2
Det virker ikke, jeg har puttet mit data ind, kan du ikke skrive dt ind i min kode, i stedet for det der...?
Avatar billede cot Nybegynder
25. december 2007 - 21:18 #3
sry, have glemt at få min sql connect med, smid svar...
Avatar billede nielschristiansen Nybegynder
25. december 2007 - 21:19 #4
håber det bliver glad for det :)
Avatar billede cot Nybegynder
25. december 2007 - 21:49 #5
Det gør jeg skam
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