Avatar billede kartinm Nybegynder
23. juni 2003 - 19:41 Der er 11 kommentarer og
2 løsninger

vise 5 poster pr. side i gæstebog

hej..

Jeg står og skal lave en gæstebog, og jeg hidtil virker den fint, men jeg vil meget gerne give brugerne lov til at bestemme hvor mange indlæg de kan se pr. side.
De skal kunne vælge mellem 5, 10, 15 og 20 indlæg pr. side.

Lige nu vises alle indlæg....
Hvad kan jeg gøre????

kartinm
Avatar billede dknsj Nybegynder
23. juni 2003 - 19:50 #1
hvad hedder kolonnerne
Avatar billede dknsj Nybegynder
23. juni 2003 - 19:51 #2
du kan bare lave en side der hedder "side1.php","side2.php","side3",side4"...
med nedsttående kode

side1.php : [viser 5]
<?
$select_new5 = mysql_query("SELECT felt FROM tabel ORDER BY id DESC LIMIT 5");
while($row_new5 = mysql_fetch_array($select_new5)) {
print "$row_new5[felt]<br>";
}
?>

side2.php : [viser 10]
<?
$select_new5 = mysql_query("SELECT felt FROM tabel ORDER BY id DESC LIMIT 10");
while($row_new5 = mysql_fetch_array($select_new5)) {
print "$row_new5[felt]<br>";
}
?>

side3.php : [viser 15]
<?
$select_new5 = mysql_query("SELECT felt FROM tabel ORDER BY id DESC LIMIT 15");
while($row_new5 = mysql_fetch_array($select_new5)) {
print "$row_new5[felt]<br>";
}
?>

side4.php : [viser 20]
<?
$select_new5 = mysql_query("SELECT felt FROM tabel ORDER BY id DESC LIMIT 20");
while($row_new5 = mysql_fetch_array($select_new5)) {
print "$row_new5[felt]<br>";
}
?>

ps. du skal nok ik lige fjerne det der hedder "new5"..
Avatar billede dknsj Nybegynder
23. juni 2003 - 19:52 #3
du kan bare lave en side der hedder "side1.php","side2.php","side3",side4"...
med nedsttående kode

side1.php : [viser 5]
<?
$select_new5 = mysql_query("SELECT felt FROM tabel ORDER BY id DESC LIMIT 5");
while($row_new5 = mysql_fetch_array($select_new5)) {
print "$row_new5[felt]<br>";
}
?>

side2.php : [viser 10]
<?
$select_new5 = mysql_query("SELECT felt FROM tabel ORDER BY id DESC LIMIT 10");
while($row_new5 = mysql_fetch_array($select_new5)) {
print "$row_new5[felt]<br>";
}
?>

side3.php : [viser 15]
<?
$select_new5 = mysql_query("SELECT felt FROM tabel ORDER BY id DESC LIMIT 15");
while($row_new5 = mysql_fetch_array($select_new5)) {
print "$row_new5[felt]<br>";
}
?>

side4.php : [viser 20]
<?
$select_new5 = mysql_query("SELECT felt FROM tabel ORDER BY id DESC LIMIT 20");
while($row_new5 = mysql_fetch_array($select_new5)) {
print "$row_new5[felt]<br>";
}
?>

ps. du skal nok ik lige fjerne det der hedder "new5"..
Avatar billede kartinm Nybegynder
23. juni 2003 - 19:56 #4
er det ikke muligt at hente x antal poster fra tabellen.
X sættes til at være 10, men da brugerne vælger 20 poster pr. side, så får x værdien 20 ?
Det ville være meget bedre, for så slipper jeg for at lave en masse sider...
Avatar billede dknsj Nybegynder
23. juni 2003 - 19:57 #5
kan jeg ikke hjælpe med
Avatar billede kartinm Nybegynder
23. juni 2003 - 19:58 #6
OK... er det ok hvis jeg giver dig 30 point ?
Avatar billede ahv Nybegynder
23. juni 2003 - 19:58 #7
Hov vent.
Avatar billede ahv Nybegynder
23. juni 2003 - 19:58 #8
<?php

$connection = mysql_pconnect("host","user","pass");
mysql_select_db("database");

$prside = $_GET['prside'];
$visfra = $_GET['visfra'];

if(!$_GET['visfra']) $visfra = 0;
if(!$_GET['prside']) $prside = 10;

$query = mysql_query ("SELECT * FROM tabel ORDER BY id DESC limit $visfra, $prside"); // Dit database udtræk
while ($row = mysql_fetch_array($query)) {
    echo $row['id']."<br>";
}

$antal = mysql_num_rows(mysql_query("SELECT * FROM tabel"));

if ($visfra > 0) {
    $bagud = $visfra-$prside;
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$bagud&prside=$prside'>Forrige</a> ";
}
$page = 1;
for ($start = 0; $antal > $start; $start = $start + $prside) {
    if($visfra != $page * $prside - $prside) {
        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start&prside=$prside'>$page</a> ";
    } else {
        echo $page." ";
    }
    $page++;
}
if ($visfra < $antal - $prside) {
    $naeste = $visfra + $prside;
    echo " <a href='$_SERVER[PHP_SELF]?visfra=$naeste&prside=$prside'>Næste</a>";
}

echo "<br><br><a href='$_SERVER[PHP_SELF]?prside=5'>5 pr side</a> - <a href='$_SERVER[PHP_SELF]?prside=10'>10 pr side</a> - <a href='$_SERVER[PHP_SELF]?prside=15'>15 pr side</a>";
?>
Avatar billede kartinm Nybegynder
23. juni 2003 - 19:59 #9
jeg venter....
Avatar billede ahv Nybegynder
23. juni 2003 - 20:00 #10
Sig til hvis der er noget du ikke er helt med på hvordan fungere. Det hele har du i en fil her og du kan skifte mellem sider m.m. Den er vist lidt smartere end dem der er postet tidligere.
Avatar billede bearhugx Nybegynder
23. juni 2003 - 20:01 #11
du kan lave følgende (utestet)

<?
  $antal = $_REQUEST["antal"];
  $offset = $_REQUEST["offset"];
  $result = mysql_query("SELECT * FROM tabel ODER BY id DESC LIMIT $antal, $offset");
  while($row = mysql_fetch_array($result)) {
  print "$row[felt]<br>";
  }

  og så sæt link som "se næste $antal" hvor der bliver offset = offset+antal

/Søren
Avatar billede bearhugx Nybegynder
23. juni 2003 - 20:04 #12
hov - som avh skriver, så skal der byttes om på $antal og $offset i LIMIT klausulen
Avatar billede bearhugx Nybegynder
23. juni 2003 - 20:18 #13
takker for points :-))
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