Avatar billede torbennielsen666 Nybegynder
14. april 2012 - 17:32 Der er 5 kommentarer

Gå til bestemt side i udskrift fra database

Hej.
Jeg har en database som jeg udskriver noget data ud fra.
Jeg viser 15 på hver side og har så lavet så man kan vælge at gå til næste side og få vist de næste 15 posts i databasen, eller trykke for at se de forrige 15 posts.

Hvordan laver jeg så den udskriver side 1,2,3,4,5,6,7.... osv.. Så man kan trykke på f.eks. side 20 eller noget? Så den springer 15 posts x 20 frem?

Håber i ved hvad jeg mener. Ellers skriv endelig.

Altså bare så man ikke behøver sidde og bladre og trykke mange gange for at komme langt frem i database, men bare kan springe ved at trykke på f.eks. 20.

Koden er her:



<?php


// hent start værdien
$start = (isset($_GET['start'])) ? $_GET['start'] : 0;
$limit = 15; // 15 resultater pr. side

// lav næste forrige links
$next = "<a href='show.php?start=".($start+$limit)."'>Næste side</a>";
if ($start != 0) {
  $prev = "<a href='show.php?start=".($start-$limit)."'>Forrige side</a> - ";
} else {
  $prev = '';
}

// hent data



$result = mysql_query("SELECT x, x, x, x, x, x From x  where x < 3 AND x <> 'x' ORDER BY x DESC LIMIT ".$start.", ".$limit);

// Tæller start
$count = 0;

?>



<b><font size="5" face="Verdana">
</u>
SENESTE</font>

<hr><br>
<div align="center">


<?php

echo '<table height="180" valign="top" border="0" width="100%">';
echo '<tr valign="top" >';

// Loop resultater fra databasen
while($row=mysql_fetch_assoc($result)) {

  // Indhold der skal i tabel cellerne
Udskriv indhold... (har slettet koden da det fyldte en masse)

  // Vi har vist under 6 rækker
  if($count < 3) {
      echo '<td valign="top" align="center" height="180"><font size="2"></u>'.$content.'</td>';
      $count++; // +1 til tæller

  // Dette er den 6. gennemgang der laver rækkeskift
  } else {
      echo '</tr><tr><td align="center" valign="top"><font size="2"></u>'.$content.'</td>';

      $count = 1; // Nulstiller tæller - vi har allerede vist én række, derfor 1
  }
}

echo '</tr>';
echo '</table>';
?>



    </div>
    <div align="center">
        <?


echo $prev." ".$next;

      mysql_free_result($result);

    ?></p>
Avatar billede olebole Juniormester
14. april 2012 - 18:04 #1
<ole>

Fænomenet kaldes paging, og der er skrevet en del guides om emnet her på Eksperten.

/mvh
</bole>
Avatar billede olebole Juniormester
14. april 2012 - 18:05 #2
Hvad angår databasekald og sikkerhed, bør du nok kikke på denne guide
Avatar billede torbennielsen666 Nybegynder
14. april 2012 - 20:20 #3
Lige præcis.. Paging var ordet jeg var ude efter. :-)

Jeg prøver at kigge det igennem, tak...
Avatar billede torbennielsen666 Nybegynder
14. april 2012 - 20:21 #4
Har faktisk kigget det igennem med sikkerhed, men synes det var lidt uoverskueligt.. ;-)
Avatar billede olebole Juniormester
14. april 2012 - 20:45 #5
#4: Njah ... det er bare noget, der skal læres. Der er en grund til, at folk kan leve af webudvikling: Det er et fag på lige fod med alle andre. Ingen har sagt, at man kan mestre faget uden at bruge en masse tid på det  *o)
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