Avatar billede stengaard Praktikant
16. januar 2006 - 18:00 Der er 7 kommentarer og
1 løsning

hvordan laver man en funktion hvor man kun for vist f.eks. 5 stk

hvordan laver man en funktion hvor man kun for vist f.eks. 5 stk af gange.

1. med mulighed for to funktioner der hedder næste 5 
2. tilbage 5

f.eks. efter de 5 første viste derefter mulighed for at trykke på næste og næste 5 kommer frem. der har man så mulighed for at gå tilbage 5 stk

på dette script

<?
include("access.php");

$sql = mysql_query("SELECT id, email, navn, user, oprettetaf, date_format(tid, '%e/%c %Y, %H:%i') as tid FROM login ORDER by user asc");
            $strNumber = 0;
            while($row = mysql_fetch_array($sql)) {
        $strNumber = $strNumber+1;
       
              echo "<h3 style='color: #963a3a; font-weight: bold'>$row[navn]</h3>  (indmeldt: $row[tid] af: $row[oprettetaf]) <br> $row[email]";
       
            }
?>
Avatar billede jakobdo Ekspert
16. januar 2006 - 18:11 #1
Du skal bruge LIMIT 0,5
0 skal så være dit offset.
Så laver du en knap som hedder næste, den skal så sætte offset = offset + 5;
tilbage skal sætte offset = offset - 5;

Og din sql skal være:
$offset = mysql_real_escape_string($_GET['offset']);
$sql = mysql_query("SELECT id, email, navn, user, oprettetaf, date_format(tid, '%e/%c %Y, %H:%i') as tid FROM login ORDER by user asc LIMIT $offset,5");
Avatar billede stengaard Praktikant
16. januar 2006 - 20:32 #2
sådan her eller er det helt forkert

<?
include("access.php");

$offset = mysql_real_escape_string($_GET['offset']);
$sql = mysql_query("SELECT id, email, navn, user, oprettetaf, date_format(tid, '%e/%c %Y, %H:%i') as tid FROM login ORDER by user asc LIMIT $offset,5");
$strNumber = 0;
while($row = mysql_fetch_array($sql)) {
$strNumber = $strNumber+1;
     
echo "<h3 style='color: #963a3a; font-weight: bold'>$row[navn]</h3>  (indmeldt: $row[tid] af: $row[oprettetaf]) <br> $row[email]";
     
            }
echo "<a href='?offset=offset - 5'>Forrige</a> | ";
} else {
echo 'Forrige | ';
}
if ($antal > $offset+$range) {
$naeste = $offset+$range;
echo "<a href='??offset=offset + 5'>Næste</a> ";
} else {
echo 'Næste ';
}
?>
Avatar billede jakobdo Ekspert
16. januar 2006 - 20:44 #3
Jeg tror måske denne skulle kunne gøre det:

<?
include("access.php");

$offset = (isset($_GET['offset']))?mysql_real_escape_string($_GET['offset']):0;

//Pr side...
$range = 5;

$antal = mysql_result(mysql_query("SELECT count(id) FROM login"));
$sql = mysql_query("SELECT id, email, navn, user, oprettetaf, date_format(tid, '%e/%c %Y, %H:%i') as tid FROM login ORDER by user asc LIMIT $offset,$range");

$strNumber = 0;
while($row = mysql_fetch_array($sql))
{
    $strNumber = $strNumber+1;
    echo "<h3 style='color: #963a3a; font-weight: bold'>$row[navn]</h3>  (indmeldt: $row[tid] af: $row[oprettetaf]) <br> $row[email]";
}

if($offset >= $range)
{
    $prev = $offset - $range;
    echo "<a href=\"?offset=".$prev."\">Forrige</a> | ";
}
else
{
    echo 'Forrige | ';
}

if ($antal > $offset+$range)
{
    $next = $offset+$range;
    echo "<a href=\"?offset=".$next."\">Næste</a> ";
}
else
{
    echo 'Næste ';
}
?>
Avatar billede stengaard Praktikant
16. januar 2006 - 21:05 #4
mmm virker ikke har ikke mulighed for at få flere frem

skulle gerne være 13 ialt så den skulle jo køre frem 2 gange
Avatar billede jakobdo Ekspert
16. januar 2006 - 21:13 #5
Her er løsningen:

<?php
//http://www.eksperten.dk/spm/680030
include("access.php");

$offset = (isset($_GET['offset']))?mysql_real_escape_string($_GET['offset']):0;

//Pr side...
$range = 5;

$antal = mysql_result(mysql_query("SELECT count(id) FROM login"),0);
$sql = mysql_query("SELECT id, email, navn, user, oprettetaf, date_format(tid, '%e/%c %Y, %H:%i') as tid FROM login ORDER by user asc LIMIT $offset,$range");

$strNumber = 0;
while($row = mysql_fetch_array($sql))
{
    $strNumber = $strNumber+1;
    echo "<h3 style='color: #963a3a; font-weight: bold'>".$row['navn']."</h3>  (indmeldt: ".$row['tid']." af: ".$row['oprettetaf'].") <br> ".$row['email'];
}

if($offset >= $range)
{
    $prev = $offset - $range;
    echo "<a href=\"?offset=".$prev."\">Forrige</a> | ";
}
else
{
    echo 'Forrige | ';
}

if ($antal > $offset+$range)
{
    $next = $offset+$range;
    echo "<a href=\"?offset=".$next."\">Næste</a> ";
}
else
{
    echo 'Næste ';
}
?>
Avatar billede stengaard Praktikant
16. januar 2006 - 21:27 #6
tak skal du have det virker nu !!
Avatar billede jakobdo Ekspert
16. januar 2006 - 21:28 #7
Svar!
Avatar billede jakobdo Ekspert
16. januar 2006 - 22:33 #8
Takker 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