Mellet Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 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
ThaMezzy Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 Kan vi få se kildekoden? Lenke til kommentar
Loomy Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 http://www.devshed.com/c/a/PHP/Previous-or...ith-PHP-part-1/ Lenke til kommentar
Prodigy_ Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 http://www.pixel2life.com/tutorials/PHP_Co...Page_Numbering/ Lenke til kommentar
ThaMezzy Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 (endret) Loomy skrev: http://www.devshed.com/c/a/PHP/Previous-or...ith-PHP-part-1/ 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 19. juni 2005 av ThaMezzy Lenke til kommentar
Prodigy_ Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 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 Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 Prodigy_ skrev: 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
Prodigy_ Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 @ThaMezzy: Jeg synes også det er bedre med sidetall, men det er han som bestemmer om han vil ha det eller ikke. Lenke til kommentar
ThaMezzy Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 Prodigy_ skrev: @ThaMezzy: Jeg synes også det er bedre med sidetall, men det er han som bestemmer om han vil ha det eller ikke. Yepp. Si ifra når du har prøvd det da Mellet. Lenke til kommentar
Mellet Skrevet 19. juni 2005 Forfatter Del Skrevet 19. juni 2005 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
ThaMezzy Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 Mellet skrev: 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
kakkle Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 (endret) 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 19. juni 2005 av kakkle Lenke til kommentar
ThaMezzy Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 kakkle skrev: 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 Riktig. Glemte den! Lenke til kommentar
Mellet Skrevet 19. juni 2005 Forfatter Del Skrevet 19. juni 2005 (endret) Problemet med ditt script ThaMezzy er at den bare viser 1 nyhet 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 Aner ikke hva jeg gjorde feil i starten.. Endret 19. juni 2005 av Mellet Lenke til kommentar
Mellet Skrevet 20. juni 2005 Forfatter Del Skrevet 20. juni 2005 (endret) 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 Så da blir det ikke seende ut så veldig bra med 3 innlegg her å ett der Noen som har løsningen tin dette Endret 20. juni 2005 av Mellet Lenke til kommentar
ThaMezzy Skrevet 20. juni 2005 Del Skrevet 20. juni 2005 Mellet skrev: Problemet med ditt script ThaMezzy er at den bare viser 1 nyhet 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 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå