Gå til innhold

<- Forrige Side | Neste Side ->


Anbefalte innlegg

Har en del nyheter i databasen.

Og vil ikke at alle skal vises på en side.

 

Derfor vil jeg ha et slikt Forrige Side og Neste Side script.

Det skal være 5 nyheter på vær side.

Men det jeg har problemer med er at selv om det ikke er flere nyheter så kommer Neste Side fram :/

Lenke til kommentar
Videoannonse
Annonse

 

Orker ikke gå igjennom hele den koden, men jeg har en her som en annen har laget. Har redigert den litt. Bruk den om du vil, eller så kan du vente til noen andre svarer:

 

<?php

// Her sjekker den linken

if(!isset($_GET['neste'])){
   $side = 1;
} else {
   $side = $_GET['neste'];
}

// Nå er antall innlegg på hver side satt til 15.

$maks_resultater = 15;

$fra = (($side * $maks_resultater) - $maks_resultater);

// Her henter den ut

$sql = mysql_query("SELECT * FROM `nyheter` ORDER BY ID DESC LIMIT $fra, $maks_resultater");
$si = mysql_fetch_array($sql);

// Nå er alle feltene satt inni arrays, her printer den ut.

echo "
si[dato]<br>
$si[brukernavn]<br>
$si[id]<br><br>
";

// Her henter den ut neste, forrige linkenemed sidetallene i midten.

// Her teller den feltene

$resultater = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM nyheter"),0);

// Her finner den resultatet

$totalt = ceil($resultater / $maks_resultater);

// Forrige

echo "<div align=\"center\">";
if($side > 1){
   $forrige = ($side - 1);
   echo "<a href=\"index.php?side=nyheter&neste=$forrige\"><<Forrige</a> ";
   } else {
       echo "<<Forrige ";
}    

// Sidetall

for($i = 1; $i <= $totalt; $i++){
   if(($side) == $i){
       echo "<strong>$i</strong> ";
       } else {
           echo "<a href=\"index.php?side=nyheter&neste=$i\">$i</a> ";
   }
}

// Neste

if($side < $totalt){
   $neste = ($side + 1);
   echo "<a href=\"index.php?side=nyheter&neste=$neste\">Neste>></a>";
   } else {
       echo "Neste>>";
}
echo "</div>";

?>

 

Si ifra hvis eventuelle problemer oppstår.

Endret av ThaMezzy
Lenke til kommentar

ThaMezzy: Han skulle ikke ha sidetall.

 

Her er koden til ThaMezzy uten sidetall og med 5 nyheter per side:

<?php

// Her sjekker den linken

if(!isset($_GET['neste'])){
  $side = 1;
} else {
  $side = $_GET['neste'];
}

// Nå er antall innlegg på hver side satt til 5.

$maks_resultater = 5;

$fra = (($side * $maks_resultater) - $maks_resultater);

// Her henter den ut

$sql = mysql_query("SELECT * FROM `nyheter` ORDER BY ID DESCLIMIT $from, $max_results");
$si = mysql_fetch_array($sql);

// Nå er alle feltene satt inni arrays, her printer den ut.

echo "
si[dato]<br>
$si[brukernavn]<br>
$si[id]<br><br>
";

// Her henter den ut neste, forrige linkenemed sidetallene i midten.

// Her teller den feltene

$resultater = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM nyheter"),0);

// Her finner den resultatet

$totalt = ceil($resultater / $maks_resultater);

// Forrige

echo "<div align=\"center\">";
if($side > 1){
  $forrige = ($side - 1);
  echo "<a href=\"index.php?side=nyheter&neste=$forrige\"><<Forrige</a> ";
  } else {
      echo "<<Forrige ";
}

// Neste

if($side < $totalt){
  $neste = ($side + 1);
  echo "<a href=\"index.php?side=nyheter&neste=$neste\">Neste>></a>";
  } else {
      echo "Neste>>";
}
echo "</div>";

?>

Lenke til kommentar
ThaMezzy: Han skulle ikke ha sidetall.

Kunne han ha tatt vekk selv. Jeg for min del synes det er bedre når man kan trykke direkte på side tallet istedenfor å trykke på neste og forrige hele tiden og pluss at man kan se hvilken side man er på.

 

Dette er min mening og det har ikke noe med saken å gjøre i det hele tatt:P

Lenke til kommentar

Fiksa litt på koden selv:

 

<?php

// Sjekk Link

if(!isset($_GET['neste'])){
  $side = 1;
} else {
  $side = $_GET['neste'];
}

// Antall Innlegg

$maks_resultater = 5;

$fra = (($side * $maks_resultater) - $maks_resultater);
$slutt = ($fra+$maks_resultater);


// Her henter den ut


$sql = @mysql_query("SELECT * FROM `nyheter` ORDER BY `id` DESC LIMIT $fra, $slutt");

while ( $si = @mysql_fetch_array($sql) )
{
$si = @mysql_fetch_array($sql);
$id = ($si[id]);
$tittel = ($si[tittel]);
$dato = ($si[dato]);
$ingress = ($si[ingress]);
$kommentar = ($si[kommentar]);

echo("<h1>$tittel</h1>");
echo("<span class=\"complete\">$dato</span><br><br>");
echo nl2br("$ingress<br><br>");
echo("<a href=\"?p=lesnyhet&id=$id\">Les hele.</a> | <a href=\"?p=lesnyhet&id=$id#komment\">$kommentar kommentar(er).</a><br><br>");

}

// Her henter den ut neste, forrige linkenemed sidetallene i midten.

// Her teller den feltene

$resultater = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM nyheter"),0);

// Her finner den resultatet

$totalt = ceil($resultater / $maks_resultater);

// Forrige

echo "<div align=\"center\">";
if($side > 1){
  $forrige = ($side - 1);
  echo "<a href=\"index.php?side=nyheter&neste=$forrige\"><</a> ";
  } else {
      echo "";
}    

// Sidetall

for($i = 1; $i <= $totalt; $i++){
  if(($side) == $i){
      echo "$i ";
      } else {
          echo "<a href=\"index.php?side=nyheter&neste=$i\">$i</a> ";
  }
}

// Neste

if($side < $totalt){
  $neste = ($side + 1);
  echo "<a href=\"index.php?side=nyheter&neste=$neste\">></a>";
  } else {
      echo "";
}
echo "</div>";

?> 

 

Men nå vises kun 3 nyheter per side :/

Og den hopper over den første nyheten..

Lenke til kommentar
Fiksa litt på koden selv:

 

<?php

// Sjekk Link

if(!isset($_GET['neste'])){
  $side = 1;
} else {
  $side = $_GET['neste'];
}

// Antall Innlegg

$maks_resultater = 5;

$fra = (($side * $maks_resultater) - $maks_resultater);
$slutt = ($fra+$maks_resultater);


// Her henter den ut


$sql = @mysql_query("SELECT * FROM `nyheter` ORDER BY `id` DESC LIMIT $fra, $slutt");

while ( $si = @mysql_fetch_array($sql) )
{
$si = @mysql_fetch_array($sql);
$id = ($si[id]);
$tittel = ($si[tittel]);
$dato = ($si[dato]);
$ingress = ($si[ingress]);
$kommentar = ($si[kommentar]);

echo("<h1>$tittel</h1>");
echo("<span class=\"complete\">$dato</span><br><br>");
echo nl2br("$ingress<br><br>");
echo("<a href=\"?p=lesnyhet&id=$id\">Les hele.</a> | <a href=\"?p=lesnyhet&id=$id#komment\">$kommentar kommentar(er).</a><br><br>");

}

// Her henter den ut neste, forrige linkenemed sidetallene i midten.

// Her teller den feltene

$resultater = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM nyheter"),0);

// Her finner den resultatet

$totalt = ceil($resultater / $maks_resultater);

// Forrige

echo "<div align=\"center\">";
if($side > 1){
  $forrige = ($side - 1);
  echo "<a href=\"index.php?side=nyheter&neste=$forrige\"><</a> ";
  } else {
      echo "";
}    

// Sidetall

for($i = 1; $i <= $totalt; $i++){
  if(($side) == $i){
      echo "$i ";
      } else {
          echo "<a href=\"index.php?side=nyheter&neste=$i\">$i</a> ";
  }
}

// Neste

if($side < $totalt){
  $neste = ($side + 1);
  echo "<a href=\"index.php?side=nyheter&neste=$neste\">></a>";
  } else {
      echo "";
}
echo "</div>";

?> 

 

Men nå vises kun 3 nyheter per side :/

Og den hopper over den første nyheten..

Kanskje du burde bruke den koden jeg ga deg?

Lenke til kommentar

Og da kan det være greit å bytte denne linjen:

$sql = mysql_query("SELECT * FROM `nyheter` ORDER BY ID DESCLIMIT $from, $max_results");

til:

$sql = mysql_query("SELECT * FROM `nyheter` ORDER BY ID DESC LIMIT $fra, $maks_resultater");

 

/Kakkle

Endret av kakkle
Lenke til kommentar

Problemet med ditt script ThaMezzy er at den bare viser 1 nyhet :p

Fordi du ikke bruker WHILE for å loope flere en 1 nyhet..

Men når jeg la til en liten WHILE funket det likevel ikke ..

 

Noe som var rart syntes jeg..

 

Edit:

OMG!

Prøve å legge til WHILE igjen..

Så nå funker alt :p

Aner ikke hva jeg gjorde feil i starten..

Endret av Mellet
Lenke til kommentar

Hva om jeg skal lage sånn til gjestebokinnleggene også?

 

Blir ikke det litt messy siden id er helt skeiv!

 

Har jo slettet innlegg innimellom som ikke passet seg :p

 

Så da blir det ikke seende ut så veldig bra med 3 innlegg her å ett der :p

 

Noen som har løsningen tin dette :)

Endret av Mellet
Lenke til kommentar
Problemet med ditt script ThaMezzy er at den bare viser 1 nyhet :p

Fordi du ikke bruker WHILE for å loope flere en 1 nyhet..

Men når jeg la til en liten WHILE funket det likevel ikke ..

 

Noe som var rart syntes jeg..

 

Edit:

OMG!

Prøve å legge til WHILE igjen..

Så nå funker alt :p

Aner ikke hva jeg gjorde feil i starten..

Der skrev jeg fort da. Bruker jo en while loop selv. Du skulle jo ikke hente det ut slik uansett.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...