Avatar billede JJ77 Juniormester
13. januar 2006 - 20:03 Der er 19 kommentarer og
1 løsning

hvordan får jeg vist 5 records pr. side. "paging"

Jeg har nedenstående kode, og mit spørgsmål går på hvordan jeg kan få den til at vise 5 records pr. side? har prøvet at se her inde på exp. men jeg kan ikke få det til at virke..

<?php
require_once("../members/common.php");
//  Funktion, der "klipper" en tekst over på det mest hensigtsmæssige sted (".", " ", )
// str klip(str tekst, int længde, int tolerance)

function klip($tekst, $laengde = 200, $tolerance = 10) // $laengde og $tolerance kan udelades
{
    $punktum  = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), "."); // position af punktum
    $mellemrum = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), " "); // position af mellemrum
    $mere      = "..."; // punktummer hvis mere tekst

    if (strlen($tekst) <= $laengde + $tolerance) {
        $slut_pos = strlen($tekst); // slutposition = slut på tekst, da denne er kortere end $laengde og $tolerance
        $mere = ""; // ikke andet
    } elseif ($punktum !== false) {
        $slut_pos = $laengde-$tolerance+$punktum; // slutposition = punktum
    } elseif ($mellemrum !== false) {
        $slut_pos = $laengde-$tolerance+$mellemrum; // slutposition = mellemrum
    } else {
        $slut_pos = $laengde; // slutposition $laengde (ikke noget at gøre - skær ord over)
    }

    return substr($tekst, 0, $slut_pos) . $mere; // udskriv del + evt. punktummer
}


// Hent først data ud
$resultat = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr order by id desc") or die(mysql_error());

// Kør så igennem for hver række
while ($raekke = mysql_fetch_array($resultat)) {
  echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"360\" valign=\"top\"><span class=\"mellem\"><a href=\"vis.php?id=$raekke[Id]\" target=\"vs\">$raekke[produkt]</a></span> <br><span class=\"lille\">".klip($raekke['supplerendeTekst'])."</span></td>
  <td width=\"70\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$raekke['pris']." Kr.</span></td>
  <td width=\"130\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$raekke['bynavn']."</span></td></tr></table>
<table width=\"560\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"bgcolor=\"#CAD9EA\">
            <tr>
                    <td><span class=\"mini\">&nbsp;</span></td>
                </tr>
        </table>";
}

?>
Avatar billede JJ77 Juniormester
13. januar 2006 - 20:33 #1
Nu har jeg selv fået det til at virke.. Men jeg er meget interesseret i at en expert evt. kunne se på det og komme med kommentarer til om det er den optimale måde jeg har gjort det på;)
Det giver 60 point hvis det er gode kommentarer til evt en effektivisering af koden;)


<style>
a:link {
    color: #0352A1;
}
a:visited {
    color: #0481FF;
}
a:active {
    color: #FF0000;
}
a:hover {
    color: #000000;
}
</style>
<style>
<!--
                .stor{
                        color:#FFFFFF;
                        font:18 px Times New Roman,helvetica,tahoma,Georgia,verdana,arial,Courier New;
                        text-decoration: none;
                        font-style: normal;                   
                        font-weight: bold;
                       
                }
        -->
          <!--
                .mellem{
                        color:#000000;
                        font:14 px Times New Roman,helvetica,tahoma,Georgia,verdana,arial,Courier New;
                        text-decoration: none;
                        font-style: normal;                   
                        font-weight: bold;
                       
                }
        -->
        <!--
                .lille{
                        color:#585858;
                        font:12px Helvetica,sans-serif, Georgia,;
                        text-decoration: none;
                }
        -->
          <!--
                .lilleS{
                        color:#000011;
                        font:12px Helvetica,sans-serif, Georgia,;
                        text-decoration: none;
                }
        -->
        <!--
                .mini{
                        color:#FFFFFF;
                        font:2px Helvetica,sans-serif, Georgia,;
                        text-decoration: none;
                }
        -->
</style>


<table width="560" border="0" cellspacing="5" cellpadding="0" bgcolor="#CAD9EA">
<tr>
        <td width="360" valign="top"><span class="stor"><b><u>Annonce</u></b></span></td>
        <td width="70" align="center" valign="top"><span class="stor"><b><u>Pris</u></b></span></td>
        <td width="130" align="center" valign="top"><span class="stor"><b><u>Område</u></b></span></td>
    </tr>
    </table>
<?php
require_once("../members/common.php");
//  Funktion, der "klipper" en tekst over på det mest hensigtsmæssige sted (".", " ", )
// str klip(str tekst, int længde, int tolerance)

function klip($tekst, $laengde = 200, $tolerance = 10) // $laengde og $tolerance kan udelades
{
    $punktum  = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), "."); // position af punktum
    $mellemrum = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), " "); // position af mellemrum
    $mere      = "..."; // punktummer hvis mere tekst

    if (strlen($tekst) <= $laengde + $tolerance) {
        $slut_pos = strlen($tekst); // slutposition = slut på tekst, da denne er kortere end $laengde og $tolerance
        $mere = ""; // ikke andet
    } elseif ($punktum !== false) {
        $slut_pos = $laengde-$tolerance+$punktum; // slutposition = punktum
    } elseif ($mellemrum !== false) {
        $slut_pos = $laengde-$tolerance+$mellemrum; // slutposition = mellemrum
    } else {
        $slut_pos = $laengde; // slutposition $laengde (ikke noget at gøre - skær ord over)
    }

    return substr($tekst, 0, $slut_pos) . $mere; // udskriv del + evt. punktummer
}
require_once("../members/common.php");

$pr_side = "5"; //Definerer antal resultater pr. side


if (!isset($s)) {
    $s = "0"; //Tjekker om $s - som står for start - er sat, hvis ikke sættes den
}


$query = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr order by id desc limit $s,$pr_side") or die(mysql_error());

while($row = mysql_fetch_array($query)){
   
echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"360\" valign=\"top\"><span class=\"mellem\"><a href=\"vis.php?id=$row[Id]\" target=\"vs\">$row[produkt]</a></span> <br><span class=\"lille\">".klip($row['supplerendeTekst'])."</span></td>
  <td width=\"70\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['pris']." Kr.</span></td>
  <td width=\"130\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['bynavn']."</span></td></tr></table>
<table width=\"560\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"bgcolor=\"#CAD9EA\">
            <tr>
                    <td><span class=\"mini\">&nbsp;</span></td>
                </tr>
        </table>";
   
   
   
   
   
   

}



$g_total = mysql_query("select count(id) as total from salgAfProdukt") or die(mysql_error());
$total = mysql_result($g_total,0);

##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes   
    echo "<a href='?s=$previous_s'>Forrige</a> "; //Udskriver linket
}

##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start'>$page</a> "; //...hvis ikke, udskrives link med værdien af $page
    } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo "$page "; //...udskrives værdien af $page bare, altså ikke som link
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}

##
#Find ud af om der skal være et næste link
##
if ($total > $s+$pr_side) { //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s'>Næste</a>"; //Udskriver linket "næste"
}


?>
Avatar billede coderdk Praktikant
13. januar 2006 - 20:53 #2
Det ser sådan set ok ud, men det kan gøres mere effektivt for serveren.
Et eksempel er her: http://php.coder.dk/pagination
Avatar billede JJ77 Juniormester
13. januar 2006 - 20:54 #3
ok.. men hvordan mere effektiv for serveren?
Avatar billede coderdk Praktikant
13. januar 2006 - 20:56 #4
Du har to selects, den der selecter, og den der tæller hvor mange der er.
Den version jeg linker til, gør brug af SQL_CALC_FOUND_ROWS og SELECT FOUND_ROWS() - Det er en smule mere servervenligt :)
Avatar billede wetdog Nybegynder
13. januar 2006 - 20:58 #5
her er en jeg lavede for nogle år siden til www.es-engros.com:

/*-----------------PAGING START-------------------------------*/
        print "<center><table><tr>";

        if($catid<>6) {

        $page=1;

        for($x=0;$numb>$x;$x+=$limit) {
            if($x!=$offset) {
                print "<td class=text1><a href=".$PHP_SELF."?offset=".$x."&catid=".$catid.">".$tekst." ".$page."</a> |</td>";
            } else {
                print "<td class=text1><b>".$tekst." ".$page." |</b></td>";
            }
            $page++;
        }
        print "</tr></table></center>";
        /*-----------------PAGING END---------------------------------*/
Avatar billede wetdog Nybegynder
13. januar 2006 - 20:59 #6
$limit er tidligere sat til 12 - men kan ændres hvis man vil vise flere records
Avatar billede JJ77 Juniormester
13. januar 2006 - 21:02 #7
NEDENSTÅENDE kode, er det den optimale at bruge i forhold til den jeg bruger nu? og hvis, hvornnn fann får jeg den sat ind.. synes den virker lidt indviklet;)


<?php
require_once("../members/common.php");

    define( 'ITEMS_PER_PAGE', 10 );

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

    $sql = sprintf( '
        SELECT SQL_CALC_FOUND_ROWS
            felt1
            ,felt2
            ,felt3
        FROM
            tabel
        ORDER BY
            felt1
        LIMIT
            %d, %d
        '
        ,$start
        ,ITEMS_PER_PAGE
        );
   
    if ( $qh = mysql_query( $sql ) )
    {
        $n = $start;
        while ( $row = mysql_fetch_assoc( $qh ) )
        {
            $col = ( ++$n % 2 == 0 ? 'cccccc' : 'ffffff' );
            echo sprintf( '<div style="background-color: #%s">%d. %s %s %s
                </div>'
                ,$col
                ,$n
                ,$row['felt1']
                ,$row['felt2']
                ,$row['felt3']
                );
        }
       
        $sql = 'SELECT FOUND_ROWS() AS antal';
        $qhantal = mysql_query( $sql );
        $row = mysql_fetch_assoc( $qhantal );
        $total = $row['antal'];
        $pages = ceil( $total / ITEMS_PER_PAGE );
       
        echo "<div><br /></div>";
       
        for ( $i = 0; $i < $pages; $i++ )
        {
            if ( $i > 0 )
            {
                echo "|";
            }
            if ( $i == $page )
            {
                echo '<b> ' . ( $i + 1 ) . ' </b>';
            }
            else
            {
                echo sprintf(
                    '<a href="%s?page=%d"> %d </a>'
                    ,$_SERVER['PHP_SELF']
                    ,$i
                    ,$i+1
                    );
            }
        }
    }
    else
    {
        echo "Query failed.";
    }

?>
Avatar billede JJ77 Juniormester
13. januar 2006 - 21:13 #8
Hvis jeg nu skulle beholde den jeg har, hvordan får jeg den så til at lade være med at skrive et 1-tal hvis der kun er én side som vises?

$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start'>$page</a> "; //...hvis ikke, udskrives link med værdien af $page
    } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo "$page "; //...udskrives værdien af $page bare, altså ikke som link
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}
Avatar billede wetdog Nybegynder
13. januar 2006 - 21:27 #9
smid din paging kode i en:

if $total > $pr_side

så vil den ikke skrive et 1-tal
Avatar billede JJ77 Juniormester
13. januar 2006 - 21:30 #10
Kan næsten gætte mig til at det er i noget af nedenstående som det skal ind i, men hvor? sorry hvis det er et dumt spørgsmål;)



$g_total = mysql_query("select count(id) as total from salgAfProdukt") or die(mysql_error());
$total = mysql_result($g_total,0);

##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes   
    echo "<a href='?s=$previous_s'>Forrige</a> "; //Udskriver linket
}

##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start'>$page</a> "; //...hvis ikke, udskrives link med værdien af $page
    } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo "$page "; //...udskrives værdien af $page bare, altså ikke som link       
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}
Avatar billede wetdog Nybegynder
13. januar 2006 - 21:36 #11
$g_total = mysql_query("select count(id) as total from salgAfProdukt") or die(mysql_error());
$total = mysql_result($g_total,0);
if($total>$pr_side){

##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes 
    echo "<a href='?s=$previous_s'>Forrige</a> "; //Udskriver linket
}

##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start'>$page</a> "; //...hvis ikke, udskrives link med værdien af $page
    } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo "$page "; //...udskrives værdien af $page bare, altså ikke som link
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}

##
#Find ud af om der skal være et næste link
##
if ($total > $s+$pr_side) { //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s'>Næste</a>"; //Udskriver linket "næste"
}
}
Avatar billede JJ77 Juniormester
13. januar 2006 - 21:42 #12
Super sejt.. det virker sku:)
Jeg kan fornemme at du er en ægte expert, og vil du ikke lige gøre mig en sidste tjeneste, nemlig lige se om min kode er ok, eller om der er fejl jeg ikke har set. Det virker, men det kunne alligevel godt være at der var et par brølere.. og så smid lige et svar så du kan få dine velfortjente point... takker


<table width="560" border="0" cellspacing="5" cellpadding="0" bgcolor="#CAD9EA">
<tr>
        <td width="360" valign="top"><span class="stor"><b><u>Annonce</u></b></span></td>
        <td width="70" align="center" valign="top"><span class="stor"><b><u>Pris</u></b></span></td>
        <td width="130" align="center" valign="top"><span class="stor"><b><u>Område</u></b></span></td>
    </tr>
    </table>
<?php
require_once("../members/common.php");
//  Funktion, der "klipper" en tekst over på det mest hensigtsmæssige sted (".", " ", )
// str klip(str tekst, int længde, int tolerance)

function klip($tekst, $laengde = 200, $tolerance = 10) // $laengde og $tolerance kan udelades
{
    $punktum  = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), "."); // position af punktum
    $mellemrum = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), " "); // position af mellemrum
    $mere      = "..."; // punktummer hvis mere tekst

    if (strlen($tekst) <= $laengde + $tolerance) {
        $slut_pos = strlen($tekst); // slutposition = slut på tekst, da denne er kortere end $laengde og $tolerance
        $mere = ""; // ikke andet
    } elseif ($punktum !== false) {
        $slut_pos = $laengde-$tolerance+$punktum; // slutposition = punktum
    } elseif ($mellemrum !== false) {
        $slut_pos = $laengde-$tolerance+$mellemrum; // slutposition = mellemrum
    } else {
        $slut_pos = $laengde; // slutposition $laengde (ikke noget at gøre - skær ord over)
    }

    return substr($tekst, 0, $slut_pos) . $mere; // udskriv del + evt. punktummer
}


$pr_side = "20"; //Definerer antal resultater pr. side


if (!isset($s)) {
    $s = "0"; //Tjekker om $s - som står for start - er sat, hvis ikke sættes den
}


$query = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr order by id desc limit $s,$pr_side") or die(mysql_error());

while($row = mysql_fetch_array($query)){
   
echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"360\" valign=\"top\"><span class=\"mellem\"><a href=\"vis.php?id=$row[Id]\" target=\"vs\">$row[produkt]</a></span> <br><span class=\"lille\">".klip($row['supplerendeTekst'])."</span></td>
  <td width=\"70\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['pris']." Kr.</span></td>
  <td width=\"130\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['bynavn']."</span></td></tr></table>
<table width=\"560\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"bgcolor=\"#CAD9EA\">
            <tr>
                    <td><span class=\"mini\">&nbsp;</span></td>
                </tr>
        </table>";
   

}
$g_total = mysql_query("select count(id) as total from salgAfProdukt") or die(mysql_error());
$total = mysql_result($g_total,0);
if($total>$pr_side){

##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes 
    echo "<a href='?s=$previous_s'>Forrige</a> "; //Udskriver linket
}

##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start'>$page</a> "; //...hvis ikke, udskrives link med værdien af $page
    } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo "$page "; //...udskrives værdien af $page bare, altså ikke som link
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}

##
#Find ud af om der skal være et næste link
##
if ($total > $s+$pr_side) { //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s'>Næste</a>"; //Udskriver linket "næste"
}
}


?>
Avatar billede JJ77 Juniormester
13. januar 2006 - 21:45 #13
og er det forresten ikke muligt også at få vist sidelinksene øverst også? kræver det at alt koden "pagingkoden" skal gentages øverst?
Avatar billede wetdog Nybegynder
13. januar 2006 - 21:57 #14
hvis du efter:

$query = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr order by id desc limit $s,$pr_side") or die(mysql_error());

indsætter
$g_total = mysql_num_rows($query)

så kører du ikke din select 2 gange, som kan være belastende for serveren. Funktionen henter antal records fra din sql-statement. Nu har du antallet i en variabel som kan bruges istedet for din 2. sql query.

Og til dit sidste spørgsmål - muligvis, prøv det
Avatar billede wetdog Nybegynder
13. januar 2006 - 22:02 #15
sludder - det skulle være:

$total = mysql_num_rows($query);

og disse 2 skal helt væk:

$g_total = mysql_query("select count(id) as total from salgAfProdukt") or die(mysql_error());
$total = mysql_result($g_total,0);
Avatar billede JJ77 Juniormester
13. januar 2006 - 22:08 #16
Hmmm.. virker ikke:(
<?php
require_once("../members/common.php");
//  Funktion, der "klipper" en tekst over på det mest hensigtsmæssige sted (".", " ", )
// str klip(str tekst, int længde, int tolerance)

function klip($tekst, $laengde = 200, $tolerance = 10) // $laengde og $tolerance kan udelades
{
    $punktum  = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), "."); // position af punktum
    $mellemrum = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), " "); // position af mellemrum
    $mere      = "..."; // punktummer hvis mere tekst

    if (strlen($tekst) <= $laengde + $tolerance) {
        $slut_pos = strlen($tekst); // slutposition = slut på tekst, da denne er kortere end $laengde og $tolerance
        $mere = ""; // ikke andet
    } elseif ($punktum !== false) {
        $slut_pos = $laengde-$tolerance+$punktum; // slutposition = punktum
    } elseif ($mellemrum !== false) {
        $slut_pos = $laengde-$tolerance+$mellemrum; // slutposition = mellemrum
    } else {
        $slut_pos = $laengde; // slutposition $laengde (ikke noget at gøre - skær ord over)
    }

    return substr($tekst, 0, $slut_pos) . $mere; // udskriv del + evt. punktummer
}


$pr_side = "20"; //Definerer antal resultater pr. side


if (!isset($s)) {
    $s = "0"; //Tjekker om $s - som står for start - er sat, hvis ikke sættes den
}


$query = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr order by id desc limit $s,$pr_side") or die(mysql_error());
$total = mysql_num_rows($query);

while($row = mysql_fetch_array($query)){
   
echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"360\" valign=\"top\"><span class=\"mellem\"><a href=\"vis.php?id=$row[Id]\" target=\"vs\">$row[produkt]</a></span> <br><span class=\"lille\">".klip($row['supplerendeTekst'])."</span></td>
  <td width=\"70\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['pris']." Kr.</span></td>
  <td width=\"130\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['bynavn']."</span></td></tr></table>
<table width=\"560\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"bgcolor=\"#CAD9EA\">
            <tr>
                    <td><span class=\"mini\">&nbsp;</span></td>
                </tr>
        </table>";
   

}

if($total>$pr_side){

##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes 
    echo "<a href='?s=$previous_s'>Forrige</a> "; //Udskriver linket
}

##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start'>$page</a> "; //...hvis ikke, udskrives link med værdien af $page
    } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo "$page "; //...udskrives værdien af $page bare, altså ikke som link
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}

##
#Find ud af om der skal være et næste link
##
if ($total > $s+$pr_side) { //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s'>Næste</a>"; //Udskriver linket "næste"
}
}


?>
Avatar billede wetdog Nybegynder
13. januar 2006 - 22:10 #17
fejl?
Avatar billede JJ77 Juniormester
13. januar 2006 - 22:10 #18
linksene til nye sider er forsvundet
Avatar billede wetdog Nybegynder
13. januar 2006 - 22:14 #19
så ret det tilbage igen
Avatar billede JJ77 Juniormester
13. januar 2006 - 22:15 #20
ok..;)
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