Avatar billede bremer Nybegynder
14. maj 2009 - 21:18 Der er 7 kommentarer og
1 løsning

paging? (dynamisk-side-skifter)

Hej, er der nogle som kan hjælpe mig med mit script her, jeg har ikke helt få det til at virke - det handler om paging? (dynamisk-side-skifter) - lidt hjælp til at komme vidre ville sku være godt :)

<?php
   
        if (array_key_exists("side",$_REQUEST)) {
        $side = intval($_REQUEST["side"]);
        else {
        $side = 1;
        }
       
        $results_per_page = 5;
       
        $offset = ($side - 1) * $results_per_page;
      $result = mysql_query("SELECT * FROM sb_projekter WHERE active = 1 ORDER BY id desc LIMIT ${results_per_page} OFFSET ${offset}", $connection);
        if (!$result) {
        die("Database query failed: " . mysql_error());
        }
     
        while ($row = mysql_fetch_array($result)) { 
            print "<div class='divstyle' style='padding-bottom:10px; width:100%;'>";
     
          print "<div class='projekt_id'><a href='/projekter/?id=".$row[id]."'><img src='http://www.domænenavn.dk/images/content_billeder/".$row[sb_images_normal]."' onmouseover=\"this.src = 'http://www.domænenavn.dk/images/content_billeder/".$row[sb_images_active]."';\" onmouseout=\"this.src = 'http://www.domænenavn.dk/images/content_billeder/".$row[sb_images_normal]."';\" alt='".$row[sb_overskrift]."' title='".$row[sb_overskrift]."' /></a></div>";
          print "<div class='projekt_overskrift'>".$row[sb_overskrift]."</div>";
          print "<div>".$row[intro_text]."</div>";
          print "<div class='projekt_link'><a href='http://www.domænenavn.dk/projekter/?id=".$row[id]."'><span class='projekt_link_style'>Mere om ".$row[sb_overskrift]."</span></a></div>";
            print "</div>";
            } 
        ?>
Avatar billede jakobdo Ekspert
15. maj 2009 - 09:47 #1
Skal du ikke bytte rundt på results_pr_page og offset ?

Normalt lavet det:

LIMIT OFFSET,PR_PAGE
eller:
LIMIT 1,10 (Hvilket betyder den starter med row 1 og tager 10 rækker)
Avatar billede jakobdo Ekspert
15. maj 2009 - 09:48 #2
if (array_key_exists("side",$_REQUEST)) {
  $side = intval($_REQUEST["side"]);
}else {
  $side = 1;
}

Kan også laves som:

$side = (isset($_GET['side']) && is_int($_GET['side'])) ? intval($_GET['side']) : 1;
Avatar billede bremer Nybegynder
15. maj 2009 - 12:25 #3
Super :), Spørgsmål? Hvad skal der til for jeg også kan se/lave de antal side = 1 | 2 | 3 osv... ??

Håber du forstår mig...
Avatar billede jakobdo Ekspert
15. maj 2009 - 12:33 #4
Det kræver du først trækker alle rækker ud, f.eks. med:

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM sb_projekter WHERE active = 1", $connection),0);

Og $antal skal så løbes igennem, f.eks.:

for($i = 0; $i < $antal; $i+=$results_per_page){
echo '<a href="?side='.$i.'">'.$i.'</a>';
}
Avatar billede bremer Nybegynder
15. maj 2009 - 14:49 #5
Okay, men min side loader virkelig mange nuller ud;
eksempelvis;

000000000000000000000000000000000000000000000000000000000000000000000000000000000...

Var det ikke så sådan her kode skulle se ud!?

    <?php
   
    $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM sb_projekter WHERE active = 1", $connection),0);

    for($i = 0; $i < $antal; $i+=$results_per_page){
    echo '<a href=http://www.domænenavn.dk/projekter.php"?side='.$i.'">'.$i.'</a>';
    }
    ?>
Avatar billede jakobdo Ekspert
17. maj 2009 - 21:09 #6
Hvad indeholder $antal ?
Avatar billede bremer Nybegynder
17. december 2009 - 19:47 #7
Bare skriv et "svar" - de få point... -
Avatar billede jakobdo Ekspert
17. december 2009 - 20:46 #8
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