Avatar billede haolan Nybegynder
13. oktober 2005 - 19:13 Der er 15 kommentarer og
1 løsning

LIMIT 3, næste side

Jeg vil gerne have lavet så min mysql kun udskriver 3 resultater ad gangen og man så kan trykke næste side ved enten at vælge side 2 eller ved at klikke på næste.

Fx ligesom ved googlesøgninger hvor den laver en talrække i bunden og så kan man klikke på et sidetal eller på næste eller forrige.

Hvordan fikser man sådan en?
Avatar billede amews_aj Nybegynder
13. oktober 2005 - 19:36 #1
Prøv det her:

<?
$antalperside = 10;

// CONNECT TIL DB
$hentsider = mysql_num_rows(mysql_query("SELECT * FROM db"));

$antalsider = ceil($hentsider / $antalperside);
$limit_fra = $_GET['limit_fra'];


if(!$limit_fra) {
$limit_fra = 1;
}
$limit_fra = $limit_fra * 10 - 10;

$hent = mysql_query("SELECT * FROM db ORDER BY id DESC LIMIT $limit_fra,$antalperside");
while($go = mysql_fetch_array($hentbeskeder)) {

// DINE UDSKRIFTER HER

}
?>


<?
$limit_fra = $limit_fra / 10 + 1;

for($i=1;$i<=$antalsider;$i++) {


  if( $i == $limit_fra ) {
    echo "<b>$limit_fra</b>";
  }
  else {
    echo "<a href=?limit_fra=".$i.">".$i."</a>&nbsp;";
  }
  }
  if( $limit_fra > $antalsider && $antalsider != 0 ) {
  print(" <script language='javascript' type='text/javascript'>
        location.href='?limit_fra=$antalsider';
        </script>");
        }
       
  if( $_GET['limit_fra'] < 1 && $_GET['limit_fra'] != "") {
    print(" <script language='javascript' type='text/javascript'>
        location.href='?limit_fra=1';
        </script>");
        }
 
if ( $antalsider == 0 | $antalsider == 1 ) {
}else{
$limit_fra = $limit_fra - 1;
echo"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo"<a href=?limit_fra=$limit_fra>Forrige side</a>";
echo"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";

$limit_fra = $limit_fra + 2;

echo"<a href=?limit_fra=$limit_fra>Næste side</a>";
}
?>
Avatar billede haolan Nybegynder
13. oktober 2005 - 20:04 #2
Den er fin nok i sin opbygning.. men den viser ikke noget når man går videre til næste side
Avatar billede amews_aj Nybegynder
13. oktober 2005 - 20:06 #3
Har du et eksempel?
Avatar billede amews_aj Nybegynder
13. oktober 2005 - 20:14 #4
Prøv denne her:

<?
$antalperside = 10;
$db = "db";

// CONNECT TIL DB
$hentsider = mysql_num_rows(mysql_query("SELECT * FROM $db"));

$antalsider = ceil($hentsider / $antalperside);
$limit_fra = $_GET['limit_fra'];


if(!$limit_fra) {
$limit_fra = 1;
}
$limit_fra = $limit_fra * $antalperside - $antalperside;

$hent = mysql_query("SELECT * FROM $db ORDER BY id DESC LIMIT $limit_fra,$antalperside");
while($go = mysql_fetch_array($hent)) {

// DINE BESKEDER

}
?>


<?
$limit_fra = $limit_fra / $antalperside + 1;

for($i=1;$i<=$antalsider;$i++) {


  if( $i == $limit_fra ) {
    echo "<b>$limit_fra</b>";
  }
  else {
    echo "<a href=?limit_fra=".$i.">".$i."</a>&nbsp;";
  }
  }
  if( $limit_fra > $antalsider && $antalsider != 0 ) {
  print(" <script language='javascript' type='text/javascript'>
        location.href='?limit_fra=$antalsider';
        </script>");
        }

  if( $_GET['limit_fra'] < 1 && $_GET['limit_fra'] != "") {
    print(" <script language='javascript' type='text/javascript'>
        location.href='?limit_fra=1';
        </script>");
        }

if ( $antalsider == 0 | $antalsider == 1 ) {
}else{
$limit_fra = $limit_fra - 1;
echo"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo"<a href=?limit_fra=$limit_fra>Forrige side</a>";
echo"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";

$limit_fra = $limit_fra + 2;

echo"<a href=?limit_fra=$limit_fra>Næste side</a>";
}
?>
Avatar billede haolan Nybegynder
13. oktober 2005 - 20:15 #5
hvad er ændringen?
Avatar billede haolan Nybegynder
13. oktober 2005 - 20:16 #6
Se det totale script her:

<?
$antalperside = 3;

// CONNECT TIL DB
$hentsider = mysql_num_rows(mysql_query("SELECT * FROM jokes WHERE ref={$_GET['id']}"));

$antalsider = ceil($hentsider / $antalperside);
$limit_fra = $_GET['limit_fra'];


if(!$limit_fra) {
$limit_fra = 1;
}
$limit_fra = $limit_fra * 10 - 10;

$result = mysql_query("SELECT * FROM jokes ORDER BY id DESC LIMIT $limit_fra,$antalperside");
while ($r = mysql_fetch_array($result)) {
$dato = date('d/m Y', $r['dato']);
$titel = $r['titel'];
$joke = $r['joke'];
$forfatter = $r['forfatter'];
$id = $r['id'];

echo "<table id=joke cellspacing=3 cellpadding=2 width=700><tr><td colspan=2 style='background-color: #CC3333;'>";
echo "<b>$titel</b>";
echo "</td></tr><tr><td colspan=2 style='background-color: #CCCCFF;'>";
echo "$joke";
echo "</td></tr><tr><td style='background-color: #CCCCFF;' width=600>";
echo "<b>Indsat af:</b> $forfatter </td><td style='background-color: #CCCCFF;'> <b>ID:</b> $id";
echo "</td></tr></table><p>";

}
?>
<?
$limit_fra = $limit_fra / 10 + 1;

for($i=1;$i<=$antalsider;$i++) {


  if( $i == $limit_fra ) {
    echo "<b>$limit_fra</b>";
  }
  else {
    echo "<a href=?limit_fra=".$i."&id=".$_GET['id'].">".$i."</a>&nbsp;";
  }
  }
  if( $limit_fra > $antalsider && $antalsider != 0 ) {
  print(" <script language='javascript' type='text/javascript'>
        location.href='?limit_fra=$antalsider';
        </script>");
        }
       
  if( $_GET['limit_fra'] < 1 && $_GET['limit_fra'] != "") {
    print(" <script language='javascript' type='text/javascript'>
        location.href='?limit_fra=1';
        </script>");
        }
 
if ( $antalsider == 0 | $antalsider == 1 ) {
}else{
$limit_fra = $limit_fra - 1;
echo"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo"<a href=?limit_fra=$limit_fra&id=".$_GET['id'].">Forrige side</a>";
echo"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";

$limit_fra = $limit_fra + 2;

echo"<a href=?limit_fra=$limit_fra&id=".$_GET['id'].">Næste side</a>";
}
?>
Avatar billede amews_aj Nybegynder
13. oktober 2005 - 20:18 #7
Jeg har lige lavet den helt om...

<?
$antalperside = 3;
$db = "jokes";

// CONNECT TIL DB
$hentsider = mysql_num_rows(mysql_query("SELECT * FROM $db"));

$antalsider = ceil($hentsider / $antalperside);
$limit_fra = $_GET['limit_fra'];


if(!$limit_fra) {
$limit_fra = 1;
}
$limit_fra = $limit_fra * $antalperside - $antalperside;

$hent = mysql_query("SELECT * FROM $db ORDER BY id DESC LIMIT $limit_fra,$antalperside");
while($go = mysql_fetch_array($hent)) {
$dato = date('d/m Y', $r['dato']);
$titel = $r['titel'];
$joke = $r['joke'];
$forfatter = $r['forfatter'];
$id = $r['id'];

echo "<table id=joke cellspacing=3 cellpadding=2 width=700><tr><td colspan=2 style='background-color: #CC3333;'>";
echo "<b>$titel</b>";
echo "</td></tr><tr><td colspan=2 style='background-color: #CCCCFF;'>";
echo "$joke";
echo "</td></tr><tr><td style='background-color: #CCCCFF;' width=600>";
echo "<b>Indsat af:</b> $forfatter </td><td style='background-color: #CCCCFF;'> <b>ID:</b> $id";
echo "</td></tr></table><p>";

}
?>


<?
$limit_fra = $limit_fra / $antalperside + 1;

if ( $antalsider != 0 | $antalsider != 1 ) {
$limit_fra_f = $limit_fra - 1;
echo"<a href=?limit_fra=$limit_fra_f>Forrige side</a>";
echo"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
}

for($i=1;$i<=$antalsider;$i++) {


  if( $i == $limit_fra ) {
    echo "<b>$limit_fra</b>";
  }
  else {
    echo "<a href=?limit_fra=".$i.">".$i."</a>&nbsp;";
  }
  }
  if( $limit_fra > $antalsider && $antalsider != 0 ) {
  print(" <script language='javascript' type='text/javascript'>
        location.href='?limit_fra=$antalsider';
        </script>");
        }

  if( $_GET['limit_fra'] < 1 && $_GET['limit_fra'] != "") {
    print(" <script language='javascript' type='text/javascript'>
        location.href='?limit_fra=1';
        </script>");
        }

if ( $antalsider != 0 | $antalsider != 1 ) {

$limit_fra_n = $limit_fra + 2;
echo"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo"<a href=?limit_fra=$limit_fra_n>Næste side</a>";
}
?>
Avatar billede haolan Nybegynder
13. oktober 2005 - 20:34 #8
Nu den kan da vise posterne men der skal defineres &id=".$_GET['id']. i de link hvor man trykker næste og forrige, hvilket man ikke kan da de forsvinder når man klikker ind.

Det bruges til at vise overskrifter m.m.
Avatar billede haolan Nybegynder
13. oktober 2005 - 20:36 #9
iøvrigt skal den jo kun vise forrige når der ikke er nogen næste side.. Den viser både næste og forrige hvis man klikker videre..
Avatar billede amews_aj Nybegynder
13. oktober 2005 - 20:36 #10
Så det du mener er at den ikke må bruge ? eller &...

Hvordan fungerer din side da?
Eller mener du at den skal skrive & i stedet?
Avatar billede amews_aj Nybegynder
13. oktober 2005 - 20:37 #11
Forrige og næste skal vel begge vises hele tiden?
Avatar billede haolan Nybegynder
13. oktober 2005 - 20:39 #12
Nej men der går et eller andet galt.. Jeg har lagt det på sådan:

echo"<a href=?limit_fra=$limit_fra_n&id=".$_GET['id'].">Næste side</a>";

Men når man klikker ind fjerner den automatisk &id=".$_GET['id']. i linket
Avatar billede amews_aj Nybegynder
13. oktober 2005 - 20:45 #13
Det kan jeg ikke give nogen forklaring på, lyder mærkeligt....
Kigger på det...
Avatar billede amews_aj Nybegynder
13. oktober 2005 - 20:49 #14
<?
$antalperside = 3;
$db = "jokes";

// CONNECT TIL DB
$hentsider = mysql_num_rows(mysql_query("SELECT * FROM $db"));

$antalsider = ceil($hentsider / $antalperside);
$limit_fra = $_GET['limit_fra'];


if(!$limit_fra) {
$limit_fra = 1;
}
$limit_fra = $limit_fra * $antalperside - $antalperside;

$hent = mysql_query("SELECT * FROM $db ORDER BY id DESC LIMIT $limit_fra,$antalperside");
while($go = mysql_fetch_array($hent)) {

$dato = date('d/m Y', $go['dato']);
$titel = $go['titel'];
$joke = $go['joke'];
$forfatter = $go['forfatter'];
$id = $go['id'];

echo "<table id=joke cellspacing=3 cellpadding=2 width=700><tr><td colspan=2 style='background-color: #CC3333;'>";
echo "<b>$titel</b>";
echo "</td></tr><tr><td colspan=2 style='background-color: #CCCCFF;'>";
echo "$joke";
echo "</td></tr><tr><td style='background-color: #CCCCFF;' width=600>";
echo "<b>Indsat af:</b> $forfatter </td><td style='background-color: #CCCCFF;'> <b>ID:</b> $id";
echo "</td></tr></table><p>";

}
?>


<?
$limit_fra = $limit_fra / $antalperside + 1;

if ( $antalsider > 1 AND $_GET['limit_fra'] > 1) {
$limit_fra_f = $limit_fra - 1;
echo"<a href=?limit_fra=$limit_fra_f&id=".$_GET['id'].">Forrige side</a>";
echo"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
}

for($i=1;$i<=$antalsider;$i++) {


  if( $i == $limit_fra ) {
    echo "<b>$limit_fra</b>";
  }
  else {
    echo "<a href=?limit_fra=".$i."&id=".$_GET['id'].">".$i."</a>&nbsp;";
  }
  }
  if( $limit_fra > $antalsider && $antalsider != 0 ) {
  print(" <script language='javascript' type='text/javascript'>
        location.href='?limit_fra=$antalsider&id=".$_GET['id']."';
        </script>");
        }

  if( $_GET['limit_fra'] < 1 && $_GET['limit_fra'] != "") {
    print(" <script language='javascript' type='text/javascript'>
        location.href='?limit_fra=1&id=".$_GET['id']."';
        </script>");
        }

if ( $antalsider > 1 AND $_GET['limit_fra'] < $antalsider ) {

$limit_fra_n = $limit_fra + 2;
echo"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo"<a href=?limit_fra=$limit_fra_n&id=".$_GET['id'].">Næste side</a>";
}
?>
Avatar billede haolan Nybegynder
13. oktober 2005 - 20:53 #15
ahh nice så er den lige som jeg vil have den :) takker for hjælpen
Avatar billede amews_aj Nybegynder
13. oktober 2005 - 20:53 #16
Var så lidt. Tak for point.! :)
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