16. december 2007 - 00:32Der er
17 kommentarer og 1 løsning
Page Next and Back
Hey alle sammen !
Jeg har længe prøvet at finde ud af det såkaldte "pagination" dog uden held. Jeg har prøvet en masse koder og prøvet at læse alle tutorials som jeg kunne finde, stadig uden held. Derfor har jeg afsat 200 point til den som kan løse dette problem. Er der så en ekspert derude som kunne tænke sig at hjælpe mig med det ? :)
/* Alle siderne udskrives så man med et klik kan få resultaterne fra fx 90-100 */ for ($start = 0; $antal > $start; $start = $start + $pr_side) { if($vis_fra != $page * $pr_side - $pr_side) { echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> "; } else { echo $page." "; } $page++; }
/* Der undersøges om der skal udskrives et ”næste side”-link, er dette tilfældet udskrives linket */ if ($vis_fra < $antal - $pr_side) { $next = $vis_fra + $pr_side; echo " <a href='$_SERVER[PHP_SELF]?visfra=$next'>Næste</a>"; }
Ikke fordi jeg er ekspert til PHP eller MySQL men skal jeg ikke først connecte til MySQL databasen ? Og skal jeg ikke også lave nogle tabeller i Databasen ?
jo naturligvis - overstående trækker det ud du har i din database og laver pagination over det. Der skal naturligvis være forbindelse til databasen, og nået i databasen at vis
Jeg er i tvivl om hvad jeg præcist skal gøre. Du har givet mig en kode, godt nok er der kommentarer på. Men jeg ved ikke helt hvad jeg skal stille op..
<?php /*database forbindelse*/ @mysql_connect("localhost","bruger","pass"); @mysql_select_db("db");//database navn $num = $_GET['num'];//opretter antal side numre der skal vises if(empty($num)){//Hvis der ikke er til flere end 1 side $num = 1;//Så er nummeret self. 1 }; $limit = 2;//sætter antallet af resultater pr. side $start = ($num-1)*$limit; $start = round($start,0); $query = "SELECT * FROM `example` ORDER by `id` LIMIT $start, $limit"; // Udskift exampel med dit tabelnavn $result = mysql_query($query);
while ($r = mysql_fetch_array($result)){ echo "$r[title]<br>"; }; $totalpages = mysql_num_rows(mysql_query("SELECT * from `example`"));// tilret tabel navn udskift exampel med dit tabel navn
$totalpages = $totalpages / $limit; $totalpages = round($totalpages,0); $c = 0;//The variable c is 0 echo "<br>";//lav <br> for at lave mellemrum mellem din sidevisning [1][2]... while($c<$totalpages){ $page = $c + 1; if($_GET['num']==$page){ echo "[$page] "; }else{//else echo "<a href=?num=$page>[$page] </a>"; } $c = $c+1; } echo "<br>".$totalpages." Pages in total."; ?>
det kræver at du har en database og noget indhold i denne database, som du vil lave paging over - det giver jo heller ingen mening at lave side numre i en bog uden sider...
Ja. Det hele virker næsten nu(bruger den kode du postede). har lavet denne tabel(fra en anden tutorial)
CREATE TABLE products ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, name VARCHAR(50) NOT NULL, description TEXT NOT NULL ); INSERT INTO products (name,description) VALUES ('Product 1','Description for Product 1'); INSERT INTO products (name,description) VALUES ('Product 2','Description for Product 2'); INSERT INTO products (name,description) VALUES ('Product 3','Description for Product 3'); INSERT INTO products (name,description) VALUES ('Product 4','Description for Product 4'); INSERT INTO products (name,description) VALUES ('Product 5','Description for Product 5'); INSERT INTO products (name,description) VALUES ('Product 6','Description for Product 6'); INSERT INTO products (name,description) VALUES ('Product 7','Description for Product 7'); INSERT INTO products (name,description) VALUES ('Product 8','Description for Product 8'); INSERT INTO products (name,description) VALUES ('Product 9','Description for Product 9'); INSERT INTO products (name,description) VALUES ('Product 10','Description for Product 10');
Den viser siderne. men indholdet kan jeg ikke få frem. hvad skal jeg skrive ved: echo"dit out put her"; så "description" kommer frem?
Nu virker det næsten :) Hvordan får jeg scriptet til at arrangere de forskellige "descriptions" efter deres id og ikke efter hvordan rækkefølgen er inde i MySQL.
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.