Avatar billede grise_bassen Nybegynder
16. februar 2005 - 18:02 Der er 21 kommentarer og
1 løsning

paging hvordan?

er der nogle der vil gøre så der kun bliver vist 20 jokes af gange i katelist.php i dette http://www.netcoders.dk/sources.asp?mode=ref&id=1659&type=0 joke system


kateliste.php

<?
/*
Dette jokesystem er lavet af Kristian Frandsen
Systemet er frigivet under GNU/GPL

Systemet må frit bruges så længe disse linie
forbliver intakte.

Downloadet hos www.cyberpro.dk/frande/
*/
?>

<? include("connect.php"); ?>

<table cellspacing="1" cellpadding="2" class="tabelBox" width="80%">
<tr>
<td width="20%">

<b>Nr:</b>

</td>
<td width="80%">

<b>Joke titel:</b>

</td>
</tr>


<?


$query = mysql_query("SELECT * FROM joke_jokes WHERE kategori = '$kategori' ORDER BY id DESC");
while($r = mysql_fetch_array($query)) {
$titel = $r["titel"];
$id = $r["id"];
$joker = $r["joker"];
$count++;

if ($id%2 == 1) {
$class = "tdUlige";
} else {
$class = "tdLige";
}

echo "



<tr class=\"$class\">
        <td width=\"10%\">$count.</td>
        <td width=\"90%\"><a href=\"vis.php?id=$id\">$titel</a></td>
      </tr>

";
}


?>

</table>
Avatar billede cmau Nybegynder
16. februar 2005 - 18:29 #1
<?
/*
Dette jokesystem er lavet af Kristian Frandsen
Systemet er frigivet under GNU/GPL

Systemet må frit bruges så længe disse linie
forbliver intakte.

Downloadet hos www.cyberpro.dk/frande/
*/
?>

<? include("connect.php"); ?>

<table cellspacing="1" cellpadding="2" class="tabelBox" width="80%">
<tr>
<td width="20%">

<b>Nr:</b>

</td>
<td width="80%">

<b>Joke titel:</b>

</td>
</tr>


<?


$query = mysql_query("SELECT * FROM joke_jokes WHERE kategori = '$kategori' ORDER BY id DESC LIMIT $visfra, $prside");
while($r = mysql_fetch_array($query)) {
$titel = $r["titel"];
$id = $r["id"];
$joker = $r["joker"];
$count++;

if ($id%2 == 1) {
$class = "tdUlige";
} else {
$class = "tdLige";
}

echo "



<tr class=\"$class\">
        <td width=\"10%\">$count.</td>
        <td width=\"90%\"><a href=\"vis.php?id=$id\">$titel</a></td>
      </tr>

";
}


?>

</table>

<?
echo '<p align="center">';

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM joke_jokes WHERE kategori = '$kategori'"),0);

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



echo '</p>';
?>
Avatar billede cmau Nybegynder
16. februar 2005 - 18:36 #2
sry.. sådan her:

<?
/*
Dette jokesystem er lavet af Kristian Frandsen
Systemet er frigivet under GNU/GPL

Systemet må frit bruges så længe disse linie
forbliver intakte.

Downloadet hos www.cyberpro.dk/frande/
*/
?>

<?
$visfra = (isset($_GET["visfra"])) ? $_GET["visfra"] : 0;
$prside = 3;
include("connect.php"); ?>

<table cellspacing="1" cellpadding="2" class="tabelBox" width="80%">
<tr>
<td width="20%">

<b>Nr:</b>

</td>
<td width="80%">

<b>Joke titel:</b>

</td>
</tr>


<?


$query = mysql_query("SELECT * FROM joke_jokes WHERE kategori = '$kategori' ORDER BY id DESC LIMIT $visfra, $prside");
while($r = mysql_fetch_array($query)) {
$titel = $r["titel"];
$id = $r["id"];
$joker = $r["joker"];
$count++;

if ($id%2 == 1) {
$class = "tdUlige";
} else {
$class = "tdLige";
}

echo "



<tr class=\"$class\">
        <td width=\"10%\">$count.</td>
        <td width=\"90%\"><a href=\"vis.php?id=$id\">$titel</a></td>
      </tr>

";
}


?>

</table>

<?
echo '<p align="center">';

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM joke_jokes WHERE kategori = '$kategori'"),0);

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



echo '</p>';
?>
Avatar billede coderdk Praktikant
16. februar 2005 - 18:37 #3
Alternativt:

<?
/*
Dette jokesystem er lavet af Kristian Frandsen
Systemet er frigivet under GNU/GPL

Systemet må frit bruges så længe disse linie
forbliver intakte.

Downloadet hos www.cyberpro.dk/frande/
*/
?>

<? include("connect.php"); ?>

<table cellspacing="1" cellpadding="2" class="tabelBox" width="80%">
<tr>
<td width="20%">

<b>Nr:</b>

</td>
<td width="80%">

<b>Joke titel:</b>

</td>
</tr>


<?

    $pagesize = 20;
    $page = ( !empty( $_GET['page'] ) && is_numeric( $_GET['page'] ) ? $_GET['page'] : 0 );
    $start = $page * $pagesize;

    $query = mysql_query( "SELECT SQL_CALC_FOUND_ROWS * FROM joke_jokes WHERE kategori = '$kategori' ORDER BY id DESC LIMIT $start,$pagesize" );
    $count = 0;
    while( $r = mysql_fetch_assoc( $query ) )
    {
        $titel = $r["titel"];
        $id = $r["id"];
        $joker = $r["joker"];
        $count++;

        if ( $count % 2 == 1 )
        {
            $class = "tdUlige";
        }
        else
        {
            $class = "tdLige";
        }

        echo "



        <tr class=\"$class\">
                <td width=\"10%\">$count.</td>
                <td width=\"90%\"><a href=\"vis.php?id=$id\">$titel</a></td>
              </tr>

        ";
    }

?>

</table>
<?php

    $query = mysql_query( "SELECT FOUND_ROWS() AS antal" );
    $r = mysql_fetch_assoc( $query );
    $antal = $r['antal'];
    $pages = ceil( $antal / $pagesize );
    for ( $i = 1; $i <= $pages; $i++ )
    {
        if ( ( $i - 1 ) == $page )
        {
            echo " $i ";
        }
        else
        {
            echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?page=$i\"> $i </a> ";
        }
    }

?>
Avatar billede grise_bassen Nybegynder
16. februar 2005 - 18:49 #4
når jeg trykker næste side viser den ingen jokes men jeg ved der er flere
Avatar billede coderdk Praktikant
16. februar 2005 - 18:50 #5
Hvilken brugte du?
Avatar billede grise_bassen Nybegynder
16. februar 2005 - 18:53 #6
jeg prøvede begge og de gør det begge 2
Avatar billede coderdk Praktikant
16. februar 2005 - 18:54 #7
Prøv lige, efter denne linje:

  $antal = $r['antal'];

At tilføje:

  echo "Der er $antal jokes i databasen";
Avatar billede grise_bassen Nybegynder
16. februar 2005 - 19:17 #8
så skriver den at der er 31 jokes i databasen og når jeg trykker på næste side kommer den til ens side hvor der ingen jokes er og der skriver den der 0 jokes i databasen
Avatar billede coderdk Praktikant
16. februar 2005 - 19:24 #9
Prøv lige at ændre:

$query = mysql_query( "SELECT SQL_CALC_FOUND_ROWS * FROM joke_jokes WHERE kategori = '$kategori' ORDER BY id DESC LIMIT $start,$pagesize" );

til:

echo $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM joke_jokes WHERE kategori = '$kategori' ORDER BY id DESC LIMIT $start,$pagesize";
$query = mysql_query( $sql );

Og fortæl hvad den skriver - Måske mangler $kategori? ;P

Prøv lige at ændre:

echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?page=$i\"> $i </a> ";

Til:

echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?page=$i&kategori=$kategori\"> $i </a> ";
Avatar billede grise_bassen Nybegynder
16. februar 2005 - 19:31 #10
den skriver
SELECT SQL_CALC_FOUND_ROWS * FROM joke_jokes WHERE kategori = 'Blandet' ORDER BY id DESC LIMIT 0,20
Avatar billede coderdk Praktikant
16. februar 2005 - 19:45 #11
Skriver den også det når du klikker videre til næste side?
Avatar billede grise_bassen Nybegynder
16. februar 2005 - 19:49 #12
ja
Avatar billede grise_bassen Nybegynder
16. februar 2005 - 20:00 #13
nej unskyld den skriver
SELECT SQL_CALC_FOUND_ROWS * FROM joke_jokes WHERE kategori = 'Blandet' ORDER BY id DESC LIMIT 40,20
Avatar billede coderdk Praktikant
16. februar 2005 - 21:53 #14
Hmm ok, prøv at ændre:

    for ( $i = 1; $i <= $pages; $i++ )
    {
        if ( ( $i - 1 ) == $page )
        {
            echo " $i ";
        }
        else
        {
            echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?page=$i\"> $i </a> ";
        }
    }

til:

    for ( $i = 0; $i < $pages; $i++ )
    {
        if ( $i == $page )
        {
            echo ' ' . ( $i + 1 ) . ' ';
        }
        else
        {
            echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?page=$i\"> " . ( $i + 1 ) . ' </a> ';
        }
    }
Avatar billede grise_bassen Nybegynder
17. februar 2005 - 07:24 #15
det ser ud til at virke bortset fra at når den tæller 1,2,3,4,5,6,osv starter den for fra når jeg skifter side

http://4boystest.freeunixhost.com/jokesys/katelist.php?kategori=Blandet
Avatar billede coderdk Praktikant
17. februar 2005 - 10:49 #16
Hmm ja, prøv at ændre:

$count = 0;

til:

$count = $start - 1;

Og så får du lige et svar, da det lader til at fungere nu ;)
Avatar billede grise_bassen Nybegynder
17. februar 2005 - 14:52 #17
det virker næsten som jeg vil have..!

den starter med 0 1 2 3 men kan du ikke gøre så det bliver 1 2 3 4 i stedet
Avatar billede coderdk Praktikant
17. februar 2005 - 14:53 #18
Så har du ikke implementeret mine rettelser fra 16/02-2005 21:53:38 ;)
Avatar billede coderdk Praktikant
17. februar 2005 - 14:53 #19
(men husk at tilføje kategori til linket)
Avatar billede grise_bassen Nybegynder
17. februar 2005 - 14:54 #20
fandt ud af det skulle bare ændre $count = $start - 1; med $count = $start + 0;
Avatar billede grise_bassen Nybegynder
17. februar 2005 - 14:54 #21
tak for hjælpen!!
Avatar billede coderdk Praktikant
17. februar 2005 - 14:55 #22
Aaah ok, troede du mente sidevælgeren :) Det var så lidt!
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