Avatar billede dang Praktikant
27. april 2005 - 17:20 Der er 12 kommentarer og
1 løsning

X antal indlæg pr side + antal sider.

Jeg er ved at lave et simpelt forum, der vil jeg gerne have lavet så der bliver vist eks. 20 indlæg på indlægs siden og så en lelle menu som viser hvor mange sider der er, lidt ala "Side 1,2,3,4" osv Det første har jeg styr på men den næste er lidt mere tricky for mig !
Avatar billede baitianlong Nybegynder
27. april 2005 - 17:24 #1
$antalindlæg = mysql_num_rows(mysql_query("SELECT * FROM tabel"));
$antalsider = $antalindlæg/20;

Hvis man så f.eks klikker på 3, skal den hente fra nr. 60-80:

$result = mysql_query("SELECT * FROM tabel LIMIT 60, 20");

Sådan laver du det :)
Avatar billede dang Praktikant
27. april 2005 - 18:09 #2
Tusind tak for svaret, men mangler der ikke lidt, den del som skal lave antal sider ! som jeg kan se det tæller den op hvor mange indlæd/20 der er !
Avatar billede Slettet bruger
27. april 2005 - 18:32 #3
dang -> Hvis du fx tilgår dine sider med side?page=2, kan du gøre sådan her. (Næsten magen til legende.dks version, som ikke vil virke..)

<?php
$ppp = 20;
$antalPosts = mysql_result(mysql_query("SELECT COUNT(*) FROM tabel"), 0, 0);
$antalSider = ciel($antalindlæg / $ppp);
$result = mysql_query("SELECT * FROM tabel LIMIT " . ($ppp * ($_GET['page'] - 1)) . ", 20");
?>

legende.dk -> mysql_num_rows(mysql_query("SELECT * FROM tabel")); er da vildt overkill i forhold til mysql_result(mysql_query("SELECT COUNT(*) FROM tabel"), 0, 0);
Avatar billede baitianlong Nybegynder
27. april 2005 - 19:04 #4
vildt overkill ?? Det er millisekunder vi taler om her :))
Men allright.

Næsten magen til legende.dks version, som ikke vil virke..
-Hvad vil ikke virke ?
Avatar billede dang Praktikant
27. april 2005 - 19:44 #5
kan godt være at det er et dumt spm. men jeg mener ikke at have bidt mærke til at stjernen (*) har stået i parentes før ! Hvad er forskellen ?
Avatar billede Slettet bruger
27. april 2005 - 22:04 #6
legende.dk -> $antalsider = $antalindlæg/20; :) hvad så hvis der er 50 indlæg? så er der 2,5 side? Det kan man jo ikke bruge til så meget.. Der skal rundes op med fx ciel..
Og angående overkill, så forstill at der er 300 indlæg med masser af felter i hver + at din MySQL-server befinder sig et eller andet sted på internettet :) Ingen af delene er spor usansynlige.. Og når der nu er en SQL-funktion til at gøre arbejdet, hvorfor så gøre det med PHP?
Men jeg skal da ikke bestemme noget her, jeg fortæller bare hvad jeg finder bedst/mest logisk :)

dang -> "SELECT COUNT(*) FROM tabel" returnere en enkelt værdi. Nemlig hvor manger rækker der er i tabellen.
"SELECT * FROM tabel" returnerer hele molevitten..
Avatar billede dang Praktikant
27. april 2005 - 22:41 #7
Takker for svaret, jeg vidste godt at * gav hele dynen, og nu ved jeg hvad (*) gør :ThumpsUpSmily:
Avatar billede dang Praktikant
28. april 2005 - 00:56 #8
Nu har jeg fået lavet den der skal vise hvor mange sider der er ! Men vil gerne have den til kun at vise 20 sider !

while ($i <= $antalSider) {

Jeg vil gerne ha den til at vise $antalsider eller maks 20 ! Jeg er nok ved at være for træt, men kan ikke få det til at funke !
Avatar billede Slettet bruger
28. april 2005 - 08:11 #9
Noget ala det her?

<?php
$antalSider = 30;
for ($n = 1; ($n <= $antalSider && $n <= 20); $n++) {
  if ($n != $_GET['page'])
    echo "<a href=\"side?page=" . $n . "\"></a> ";
  else
    echo $n . " ";
}
?>


Forresten så er det ikke bare (*) i sql-sætningen.. Det er COUNT(*). :)
Avatar billede baitianlong Nybegynder
28. april 2005 - 19:34 #10
gartzen -> Du har fuldstændig ret i alt hvad du skriver. Det kræver en stor mand at erkende når han tager fejl - Jeg er ikke en stor mand :D
Avatar billede Slettet bruger
28. april 2005 - 19:55 #11
legende.dk -> Det er jeg heller ikke så ;))
Avatar billede dang Praktikant
29. april 2005 - 11:38 #12
gartzen: takker mange gange for hjælpen, send svar !
Avatar billede Slettet bruger
29. april 2005 - 12:04 #13
det var så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester