Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Simpelt Sideskift

Forord

Har du altid ville lære at kunne lave Sideskift i enten et galleri, artikel eller Nyheds script ? Så har du chancen for dette her (;

I denne artikel vil jeg beskrive hvordan du på en meget simpel måde kan lave et sideskift script.
Koden her er faktisk en mere Copy&Paste script, Men jeg vil give mig ud i at prøve at forklare lidt mere om hvad det er jeg gør.

Først skal vi ligge ud med at forbinde til vores database
  1. <?php
  2. @mysql_connect("HOST","BRUGERNAVN","KODEN");
  3. @mysql_select_db("DATABASE"); 

Hvis du er nybegynder bør du nok fjerne @ foran, men @ gør bare at den ikke melder fejl hvis du har givet en forkert oplysning. Dette er en fordel for nogen, men ikke for alle. Brug for det meste kun @ når det er at dit script er færdig udviklet og at der ikke er nogen fejl.

Nu skal vi så til at angive nogen værdier så den blandt andet ved hvor mange poster den må vise pr side, og at hvis ikke der er angivet en side, skal den automatisk starte med nummer 1.
  1. $maks = 12; //Viser antal Poster pr. side.
  2. $sideTal= 1; //Hvis intet angivet, starter vi på side 1

Derefter skal vi lige finde ud af om der er angivet en side eller der ikke er. I denne stump af koden tjekker vi om der er angivet en side eller den bare skal starte med nummer 1, dette kan tjekkes på mange måder, men jeg valgte at bruge isset(), den kan du læse mere om på php.net/isset
  1. if(isset($_GET[side]))
  2. {
  3.   $sideTal= $_GET[side]; //Angiver side værdi hvis den er angivet.
  4. }

Så skal vi se hvor mange poster der er i tabellen og regne antal sider ud. Her tjekkes fra hvilken post den skal starte, lidt simpel matematik udregning og den er hjemme. Også her tælles hvor mange poster vi har i vores tabel som skal udskrives, som så bliver brugt i vores Ceil til at angive siderne, Ceil betyder Loft, og det vil sige at den runder op til nærmeste hele tal. Scriptet ville ikke fungere hvis vi havde brugt Floor eller lign. til dette.
  1. $fra= ($sideTal - 1) * $maks; //Hvor starter vi henne
  2. $post = mysql_query("SELECT * FROM database_tabel")or die(mysql_error());
  3. $aPost = mysql_num_rows($post); //Hvor mange poster der er i tabellen
  4. $sider= ceil($aPost/$maks); //Angiver antal sider

Så laver vi vores sidetal. Dette kan umiddelbart gøres således her, den tager antal sider og laver det om. Derefter finder den ud af om vi er på den pågældene side eller det er en anden side, den side vi er på, gør den sidetallet med tyk skrift.
  1. for($side= 1; $side<= $Sider; $side++) //her begynder vi at bygge navigationen op
  2. {
  3.   if ($side == $sideTal)
  4.   {
  5.     $naven .= " <b><a href="?side=$side">$side</a></b> "; //Fremhæver nuværende side
  6.   }
  7.   else
  8.   {
  9.     $naven.= " <a href="?side=$side">$side</a> ";
  10.   }
  11. }

Så langt så godt, nu mangler vi ikke så meget. Nu skal vi bare have lavet den while løkke som udskriver vores indhold. Dette er det sidste du skal bruge for at det virker, og det er meget simpelt at forstå, ikke rigtigt så meget at være i tvivl om.

Dette gøres mest simpelt sådan her
  1. $sql = mysql_query("SELECT * FROM database_tabel ORDER BY id ASC limit $fra,$maks");
  2. while($row = mysql_fetch_array($sql)){

  3. // Dit indhold

  4. }
  5. ?>

Så har du faktisk bygget siden op og det er klart, nu kan du bare udskrive din navigerings tabel således her:

  • <? echo $naven; ?>

Så simpelt kan du lave et sideskift script, som er nemt at følge, og endnu nemmere at tilpasse. Dette script har jeg selv brugt på FirmLink . Det jeg har er bare lavet lidt om, så det er tilpasset til et galleri, men det er nemt at modificere.

Scriptet fungerede ikke korrekt, rettede fejl med variabler startede på store bogstaver.
Held og Lykke.
Sidst redigeret 19:38 20/06/2007
Oprettet af:

PHP

Point modtaget: 150

Rate:
20:11 17/06/2007

Kommentarer

Giv din mening tilkende om denne artikel, eller læs andres.
Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
flot =)
kan bare ikke få den til at passe ind i mit script! :s
Sidst redigeret 11:00 18/06/2007
Oprettet af:
  Mail
11:00 18/06/2007
$sql = mysql_query("SELECT * FROM database_tabel ORDER BY id ASC limit $Fra,$maks");
while($row = mysql_fetch_array($sql)){
// Dit indhold
}

Skal du bytte ud med din normale While-Løkke.

Husk IKKE at fjerne "limit $fra,$maks" ..
Oprettet af:
  Mail
11:12 18/06/2007
Udemærket artikel vil jeg sige. Du kommer rundt omkring de fleste funktioner, som du bruger, og det er kun godt. Dog for de helt uøvede kunne godt have fortalt, hvad for() er for en funktion, eller i det mindste bare linke til den på www.php.net.

God artikel! :)

Oprettet af:
  Mail
13:03 18/06/2007
Damn!? Niiiiiiiiiice, suuuper skrevet!! ;) Keep up the good work.
Oprettet af:
  Mail
08:19 19/06/2007
Martin > Syntaksmæssigt er for() ikke en funktion, men ellers vil jeg give dig ret.
Oprettet af:
  Mail
13:58 21/06/2007
For() er en Løkke ligesom While.. :P

det kan jeg nemlig sige, for det ved jeg, da jeg lærte det på skolen..
Oprettet af:
  Mail
15:17 26/06/2007
xP det virker fint. Flot beskrevet og sådan. Men hos mig udskriver den ikke naven :P
Oprettet af:
  Mail
13:16 09/07/2007
Præcis, Søren.
Oprettet af:
  Mail
09:42 17/07/2007
Hvorfor vil du bruge @ i din tabel? Dette kan jo være ligemeget den sikre jo ikke tabellen mere af det? Den lader jo bare vær og melde om fejl ? hmm
Oprettet af:
  Mail
12:52 11/09/2007
Den udskriver heller ikke naven hos mig !
Oprettet af:
  Mail
21:25 29/09/2007
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes