Danny92 Skrevet 30. januar 2008 Skrevet 30. januar 2008 Hei! Gjesteboka mi begynner å bli litt lang og jeg er ikke hellt sikker på hvordan jeg kan lager sånn f.eks Neste side>> eller <<Tilbake. Noen tips på hvordan jeg kan lage det? Bruker mysql.
pulse Skrevet 30. januar 2008 Skrevet 30. januar 2008 ... Neste side>> eller <<Tilbake. .... Bruker mysql. Du kan bruke LIMIT inni spørringa for å begrense antallet som skal returneres
nercix Skrevet 30. januar 2008 Skrevet 30. januar 2008 Du finner sikkert noko om du søker på "paginator php" på google. Ev. så kan du jo bruke gjestebok.php?range=(11,20) og berre vise innlegga frå 11-20 (velger du ut med sql). Då kan neste side peike til«?range(21,30)» osb.
Danny92 Skrevet 30. januar 2008 Forfatter Skrevet 30. januar 2008 Jeg kan sette på LIMIT men da kommer ikke ale innleggene med vettu. Men er ikke sikker på hvordan jeg skal få til det med å få f.eks ?rang=2 så viser den resten av innleggende der liksom. Dårlig til å forklare jeg
pulse Skrevet 30. januar 2008 Skrevet 30. januar 2008 (endret) Jeg kan sette på LIMIT men da kommer ikke ale innleggene med vettu. Men er ikke sikker på hvordan jeg skal få til det med å få f.eks ?rang=2 så viser den resten av innleggende der liksom. Dårlig til å forklare jeg Med limit: "SELECT col FROM table WHERE id >= start LIMIT 20;" Uten limit: "SELECT col FROM table WHERE id >= start AND id <= stop;" Edit: Dersom du har start på f.eks 20, og har slettet id 25, så vil limit gi deg 20 svar, men den andre vil kun gi deg 19 LIMIT er tingen! Endret 30. januar 2008 av pulse
Danny92 Skrevet 30. januar 2008 Forfatter Skrevet 30. januar 2008 Åja Skal se hva jeg kan gjøre ut av det Takk!
grimjoey Skrevet 30. januar 2008 Skrevet 30. januar 2008 (endret) Med limit: "SELECT col FROM table WHERE id >= start LIMIT 20;" denne er heller ikke optimal ettersom den starter ved id. id trenger ikke være kronologiske tall. måten å gjøre det på: SELECT col FROM table LIMIT start, 20; red: skal du ha med total antall rader kan du gjøre: SELECT col, COUNT(id) FROM table GROUP BY id LIMIT start,20; red: denne er ubrukelig. count teller kun de resulterte radene. (praktisk når du har pagination, for å kunne lage linker til alle sidene.) Endret 31. januar 2008 av grimjoey
pulse Skrevet 30. januar 2008 Skrevet 30. januar 2008 (endret) SELECT col FROM table LIMIT start, 20; smart(est)! =D Edit: Begge grimjoey's forslag er bedre enn hva jeg kom med Endret 30. januar 2008 av pulse
Martin A. Skrevet 31. januar 2008 Skrevet 31. januar 2008 http://www.sampsonvideos.com/videos/PHP/PHP_Pagination/
Danny92 Skrevet 31. januar 2008 Forfatter Skrevet 31. januar 2008 Hehe, takk! Jeg skal prøve det når jeg kommer hjem!
grimjoey Skrevet 31. januar 2008 Skrevet 31. januar 2008 Jeg skrev litt feil i forrige innlegg. for å få tak i total antall rader har man et par muligheter: SELECT SQL_CONT_FOUND_ROWS col FROM table LIMIT start, 20; SELECT FOUND_ROWS(); SELECT col, (SELECT COUNT(*) FROM table) FROM table LIMIT start, 20; SELECT col FROM table LIMIT start, 20; SELECT COUNT(*) FROM table; Det finnes sikkert flere. Jeg ville gått for nr. 1 eller 3.
Danny92 Skrevet 8. februar 2008 Forfatter Skrevet 8. februar 2008 (endret) Heisann! Jeg finner ingen løsning på dette her jeg, enten så er jeg tom i hue eller så for jeg det ikke til. Har noen et eksempel script? Hadde hvert flott! Endret 8. februar 2008 av dannyboy_1992_
pulse Skrevet 8. februar 2008 Skrevet 8. februar 2008 ... Har noen et eksempel script? Hadde hvert flott! Hvordan ser databasen ut?
Danny92 Skrevet 8. februar 2008 Forfatter Skrevet 8. februar 2008 (endret) create table news ( id int not null auto_increment, title varchar (50), navn varchar (50), dato varchar (20), nyhet text, primary key (id) ); Sånn ser den ut. Endret 8. februar 2008 av dannyboy_1992_
pulse Skrevet 8. februar 2008 Skrevet 8. februar 2008 (endret) Klikk for å se/fjerne innholdet nedenfor <?php if ((isset($_GET['start'])) AND (is_int($_GET['start']))) $start = $_GET['start']; else $start = 0; $query = "SELECT title, navn, data, nyhet FROM news ORDER BY id LIMIT $start, 20;"; $result = mysql_fetch_array($query); foreach ($result AS $key => $value) { // Print ut det du vil ha, som du vil ha det. } $key = $key + 1; echo 'Neste side: <a href="siden.php?start='.$key.'">Neste</a>'; ?> Usj, skjulte den jeg, den er dårlig, men er kanskje ett skritt i riktig retning (ikke testet). Endret 8. februar 2008 av pulse
Danny92 Skrevet 8. februar 2008 Forfatter Skrevet 8. februar 2008 Driver å tester nå, det funker ikke men prøver å fikse.
Danny92 Skrevet 8. februar 2008 Forfatter Skrevet 8. februar 2008 (endret) Ok, jeg har fått scripte til å funke: if (isset($_GET['id'])) { $start = $_GET['id']; } else { $start = 0; } $query = mysql_query("SELECT navn, innlegg FROM gu ORDER BY id DESC LIMIT ".$start.", 20;"); $result = mysql_fetch_array($query); foreach ($result AS $key => $value) { $screen = ''; while ($fetch = mysql_fetch_object($query)) { $screen .= '<div class="block">'; $screen .= ''.nl2br($fetch->innlegg).'<br>'; $screen .= '<i>Av:' . $fetch->navn . '</i>'; $screen .= '</div><br>'; } echo $screen; } $key = $key + 1; echo 'Neste side: <a href="?side=gjestebok&id='.$key.'">Neste</a>'; Men det funker ikke helt som det skal, det er litt vanskelig å forklare hva som er feil. Men vis noen erfarende ser en feil så bare rooop ut EDIT: Dere kan teste på http://danandweb.net/index.php?side=gjestebok .. Endret 8. februar 2008 av dannyboy_1992_
Martin A. Skrevet 9. februar 2008 Skrevet 9. februar 2008 Du bør kjøre is_numeric() på $_GET['id'], nå kan jeg nemlig gjøre slik: http://danandweb.net/index.php?side=gjestebok&id=omg, og få en fin feilmelding.
pulse Skrevet 9. februar 2008 Skrevet 9. februar 2008 (endret) $query = mysql_query("SELECT navn, innlegg FROM gu ORDER BY id DESC LIMIT ".$start.", 20;"); ah, DESC i spørringa gjør $key = $key + 1; blir feil. (fjern denne). Inne i foreachen (f.eks etter screen = '' legger du inn to nye linjer som følger: if (!isset($next)) $next = $key; Og så bytter du ut '.$key.' med '.$next.' i linken helt til slutt Endret 9. februar 2008 av pulse
ThorB Skrevet 16. februar 2008 Skrevet 16. februar 2008 http://www.sampsonvideos.com/videos/PHP/PHP_Pagination/ Denne var nyttig. implementerte den måten å gjøre det på i min kode. eneste er at kanskje det blir litt rotete når man har få sider.. ser det kanskje bedre ut med forrige 1 2 3 4 neste istedenfor første 2 3 siste
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å