Avatar billede venchil Nybegynder
09. august 2005 - 18:04 Der er 16 kommentarer og
1 løsning

paging-problem

Jeg har et lille problem med hensyn til paging på min blog:

<?php

&&connect&&

$offset = (isset($_GET[offset])) ? $_GET[offset] : 0;
$pr_side = 2;

$query = mysql_query("SELECT * FROM blog ORDER BY tid DESC LIMIT $offset,$pr_side");
while($row = mysql_fetch_assoc($query)) {
       
    $blogid = $hent[id];

        $emne = $hent[emne];

        $forfatter = $hent[forfatter];

        $tid = $hent[tid];

        $tekst = $hent[tekst];



echo "<table width='455px' align='center'>";
echo "<tr><td width='15px'>";
echo "<span class='overskrift_2'>$blogid</span></td>";
echo "<td colspan='2' width='435px'><span class='overskrift_1'> - $emne</span></td></tr>";
echo "<tr><td colspan='2'>";
echo $tekst;
echo "<p><div align='right'><span class='info'>$forfatter - $tid</span></div>";
echo "</td></tr>";
echo "</table>";
echo "<br>";

}

$antal = mysql_result(mysql_query('SELECT COUNT(*) FROM blog'),0);

if ($offset >= $pr_side) {
$forrige = $offset-$pr_side;
echo "<a href='?offset=$forrige'>Forrige</a> ";
}
if ($antal > $offset+$pr_side) {
$naeste = $offset+$pr_side;
echo "<a href='?offset=$naeste'>Næste</a>";
}

mysql_close($conn);
?>

Hvad kan være galt. Den udskriver ikke selve bloggen...
Avatar billede plazm Nybegynder
09. august 2005 - 18:18 #1
while($row = mysql_fetch_assoc($query)) {
skal være
while($hent = mysql_fetch_assoc($query)) {
Avatar billede nielle Nybegynder
09. august 2005 - 18:19 #2
Jeg tror at di skal rette alle dine:

$tid = $hent[tid];

- til:

$tid = $row[tid];
Avatar billede nielle Nybegynder
09. august 2005 - 18:19 #3
... ja, eller den anden vej rundt. :^)
Avatar billede plazm Nybegynder
09. august 2005 - 18:20 #4
ud fra koden ville jeg sige mit var nemmest nielle, men jeg startede også med at ville ændre alle $hent[] ;)
Avatar billede venchil Nybegynder
09. august 2005 - 18:29 #5
Tak for hjælpen, nu virker det. Hvad skal jeg gøre hvis jeg vil udskrive:

Forrige  1, 2, 3, 4, 5  Næste

?
Avatar billede nielle Nybegynder
09. august 2005 - 18:52 #6
Tilfældet Forrige er jo nemt - det svarer blot til at offset er større end 0.

Næste kræver at du på et eller andet tidspunkt har fundet ud af hvor mange rækker der er i tabellen. Hvis offset+prside overskrider denne værdi så er du på sidste side, og ellers skal der en Næste på.
Avatar billede venchil Nybegynder
09. august 2005 - 19:05 #7
Eh... ja... kan du give lidt konkret kode?

Og hvordan får man iøvrigt PHP til at skrive den side man er på nu, altså 1 eller 4 osv. med fed...
Avatar billede nielle Nybegynder
09. august 2005 - 19:13 #8
Hmm? Jeg kan se at du faktisk allerede har Forrige og Næste med i din kode. Og det ser da rimeligt korrekt ud. Så hvorfor spørger du egentlig?
Avatar billede venchil Nybegynder
09. august 2005 - 19:56 #9
Jeg vil gerne have den til at udskrive 1, 2, 3, 4, 5 osv. så man f.eks kan hoppe direkte til side 4 fra side 1...
Avatar billede nielle Nybegynder
09. august 2005 - 20:01 #10
$page = 1;
for ($i=0; $i<$antal; $i+=$pr_side)
{
    echo "<a href='?offset=$i'>$page</a> ";
    $page++;
}
Avatar billede venchil Nybegynder
10. august 2005 - 15:26 #11
Takker, nielle, du må gerne lægge et svar...

BTW: Hvordan får man PHP til at udskrive tallet med fed. Altså skrive side nr. 1 med fed hvis man er på side 1.
Avatar billede nielle Nybegynder
10. august 2005 - 18:42 #12
$page = 1;
for ($i=0; $i<$antal; $i+=$pr_side)
{
    echo ($i == $offset)
        ? "<a href='?offset=$i'><b>$page</b></a> "
        : "<a href='?offset=$i'>$page</a> ";
    $page++;
}
Avatar billede Slettet bruger
11. august 2005 - 03:10 #13
Avatar billede plazm Nybegynder
14. august 2005 - 19:17 #14
hvorfor er det at jeg ikk skulle have point for at svare på det oprindelige spørgsmål ?
Avatar billede venchil Nybegynder
14. august 2005 - 19:19 #15
Plazm: Nielle hjalp mig mest...
Avatar billede venchil Nybegynder
14. august 2005 - 19:19 #16
Men sorry... kan godt se hvad du mener. Sig til hvis du vil ha point.
Avatar billede plazm Nybegynder
14. august 2005 - 19:23 #17
Det er ligemeget,skal ikke bruge dem til noget, syns bare det var en underlig holdning, når nu jeg var først med svar, som også virkede.
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