Avatar billede zenzz Nybegynder
11. november 2009 - 21:45 Der er 6 kommentarer og
1 løsning

Skifte mellem 2 sider når der er et bestemt indhold i database

Hej

På min arbejdsplads har vi et nummersystem, som jeg ikke er helt tilfreds med. Det henter numre fra en database hvorefter de vises på en skærm - hvis der er mere end 40 numre vises de resterende ikke.

Mit spørgsmål er derfor - er det muligt at få siden til at skifte til en anden side (som så viser de resterende numre) når, og kun når, der er mere end 40 numre registreret i databasen.

Det er et simpelt system der er bygget op via html, php og en mySQL-database.

Er der nogen derude der kan give mig et fif - eller måske endda nogle råd til hvordan det kan laves.
Avatar billede fant0mas Nybegynder
11. november 2009 - 22:40 #1
Du skal nok ud i noget javascript.
Kig på:
setTimeout('funktion', tid_i_ms);

Så kan du ved timeout indlæse siden igen med et url parameter, f.eks. page=2 og så bruge LIMIT x,x i din query

Så kan den stå og skifte mellem siderne efter et bestemt interval.
Avatar billede fant0mas Nybegynder
11. november 2009 - 22:56 #2
<html>
<body>
<?php
$num_rows = 666; //hvor mange rækker er der?

$page = (isset($_GET['page']))? $_GET['page']: 1;
$pr_page = 40;

$start = $pr_page * ($page-1);
$end = $pr_page * ($page);
$sql ="SELECT * FROM table LIMIT $start, $end";

echo $sql;

$next_page = ($end < $num_rows)? $page+1: 1;

if($num_rows > 40){
?>
<script type="text/javascript">
setTimeout("redir()", 2000);
function redir(){
    window.location.href="timer.php?page=<?php echo $next_page; ?>";
}
</script>
<?php
}
?>
</body>
</html>
11. november 2009 - 23:01 #3
Du kan bruge php funktionen mysql_num_rows().  Den giver antal rows der er hentet i databasen.

Saasom:

$result = mysql_query("SELECT * FROM zenzz_table");
$num_rows = mysql_num_rows($result);
if ($num_rows <= 40) [hent paa normal vis numrene og vis dem paa siden]
else
{
  for($i=0; $i<40; $i++) [hent og vis de foerste 40 raekker];
  [redirekt til en ny side]
  for($i=40; $i<@numProws; i++) {hent og vis de resterende numre paa en ny side]
}
11. november 2009 - 23:03 #4
fant0mas havde ogsaa fundet $num_rows frem mens jeg skrev.  Jeg skal studere og kommentere hans foreslaaede loesning i morgen tidlig.  Sengetid i Belgien.
12. november 2009 - 08:12 #5
No comments.  fant0mas's solution is a lot more genetic.  I learned something.
Avatar billede zenzz Nybegynder
12. november 2009 - 14:20 #6
Mange tak for hjælpen fant0mas - og som sådan også dig Christian.

Det er præcis havde brug for.

Smider du et svar fant0mas så du kan få dine point.
Avatar billede fant0mas Nybegynder
15. november 2009 - 19:46 #7
svar
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