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?
Annonceindlæg fra XFlow
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> "; } } 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" "; echo"<a href=?limit_fra=$limit_fra>Forrige side</a>"; echo" "; $limit_fra = $limit_fra + 2; echo"<a href=?limit_fra=$limit_fra>Næste side</a>"; } ?>
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
13. oktober 2005 - 20:06
#3
Har du et eksempel?
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> "; } } 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" "; echo"<a href=?limit_fra=$limit_fra>Forrige side</a>"; echo" "; $limit_fra = $limit_fra + 2; echo"<a href=?limit_fra=$limit_fra>Næste side</a>"; } ?>
13. oktober 2005 - 20:15
#5
hvad er ændringen?
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> "; } } 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" "; echo"<a href=?limit_fra=$limit_fra&id=".$_GET['id'].">Forrige side</a>"; echo" "; $limit_fra = $limit_fra + 2; echo"<a href=?limit_fra=$limit_fra&id=".$_GET['id'].">Næste side</a>"; } ?>
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" "; } for($i=1;$i<=$antalsider;$i++) { if( $i == $limit_fra ) { echo "<b>$limit_fra</b>"; } else { echo "<a href=?limit_fra=".$i.">".$i."</a> "; } } 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" "; echo"<a href=?limit_fra=$limit_fra_n>Næste side</a>"; } ?>
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.
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..
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?
13. oktober 2005 - 20:37
#11
Forrige og næste skal vel begge vises hele tiden?
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
13. oktober 2005 - 20:45
#13
Det kan jeg ikke give nogen forklaring på, lyder mærkeligt.... Kigger på det...
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" "; } 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> "; } } 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" "; echo"<a href=?limit_fra=$limit_fra_n&id=".$_GET['id'].">Næste side</a>"; } ?>
13. oktober 2005 - 20:53
#15
ahh nice så er den lige som jeg vil have den :) takker for hjælpen
13. oktober 2005 - 20:53
#16
Var så lidt. Tak for point.! :)
Vi tilbyder markedets bedste kurser inden for webudvikling