Avatar billede s0mmer Nybegynder
16. april 2007 - 16:22 Der er 13 kommentarer og
1 løsning

Billedvisning med sider

Hej eksperter,

Jeg har følgende kode til visning af alle mine billeder:

$newspic = $db->SendSQL("SELECT * FROM ym_news_pic where newsid='".$_GET["picsid"]."'");

<?
    for($i=0;$i<count($newspic);$i++)
    print_r ("<a href=\"showpic.php?id=".$newspic[$i][0]."\" onclick=\"window.open(this.href,'win','width=100,height=100');return false\"><img src='../admin/news/".$newspic[$i][2]."' width='80' height='80' class='dot'></a> ");
?>

Nu ønsker jeg at opdele dem således at der kun er 4 billeder per side, og så skal man trykke næste for at se næste 4, og man skal selvfølgelig kunne gå tilbage.

Jeg smider lidt points i da jeg ikke har så meget tid, og det er netop derfor jeg også smider spørgsmålet til jer eksperter :)
Avatar billede jakobdo Ekspert
16. april 2007 - 17:11 #1
Noget i denne stil:

$offset = (is_numeric($_GET['offset']))?intval($_GET['offset']):0;
$limit  = 4; //Antal pr side.

$newspic = $db->SendSQL("SELECT * FROM ym_news_pic where newsid='".$_GET["picsid"]."' LIMIT $offset,$limit");
$numbersOfPics = $db->NumRows("SELECT * FROM ym_news_pic where newsid='".$_GET["picsid"]."'");

<?
    for($i=0;$i<count($newspic);$i++)
        print_r ("<a href=\"showpic.php?id=".$newspic[$i][0]."\" onclick=\"window.open(this.href,'win','width=100,height=100');return false\"><img src='../admin/news/".$newspic[$i][2]."' width='80' height='80' class='dot'></a> ");

if($offset>0)
{
    $prev = $offset - $limit;
    if($prev < 0)
        $prev = 0;
    echo '<a href="'.$_SERVER['PHP_SELF'].'?offset='.$prev.'">Prev</a>';
}

if($offset < ($numbersOfPics+$limit))
{
    $next = $offset + $limit;
    echo '<a href="'.$_SERVER['PHP_SELF'].'?offset='.$next.'">Next</a>';
}
?>
Avatar billede s0mmer Nybegynder
16. april 2007 - 18:23 #2
yes tror vi er derhenne af..

men får desværre lige
Fatal error: Call to undefined method: db->numrows()
Avatar billede jakobdo Ekspert
16. april 2007 - 19:15 #3
I know!
db->numrows() var bare et gæt!
har du ikke en funktion i din DB klasse, som returnere antal rows?
Avatar billede s0mmer Nybegynder
16. april 2007 - 19:18 #4
nej det er jeg bange for jeg ik har..
Avatar billede jakobdo Ekspert
16. april 2007 - 19:28 #5
Måske du kan løse det sådan her:
$numPics = $db->SendSQL("SELECT count(id) AS num FROM ym_news_pic where newsid='".$_GET["picsid"]."' ");
$numbersOfPics = $numPics['num'];
Avatar billede s0mmer Nybegynder
16. april 2007 - 19:59 #6
Ingen fejl, men virker ikke helt som det skal.

Jeg har 5 billeder i db

Første side vises de 4 billeder (rigtig nok) og kun "Next" vises (rigtig nok), men hvis jeg trykker next kommer jeg til en tom side hvor Prev er, men ingen billeder. Hvis jeg så trykker prev kommder jeg til en side med next, men igen ingen billeder.
Avatar billede jakobdo Ekspert
16. april 2007 - 20:05 #7
Når du trykker next, mangler der noget!

Du skal lige rette til:

if($offset>0)
{
    $prev = $offset - $limit;
    if($prev < 0)
        $prev = 0;
    echo '<a href="'.$_SERVER['PHP_SELF'].'?picsid='.$_GET["picsid"].'offset='.$prev.'">Prev</a>';
}

if($offset < ($numbersOfPics+$limit))
{
    $next = $offset + $limit;
    echo '<a href="'.$_SERVER['PHP_SELF'].'?picsid='.$_GET["picsid"].'offset='.$next.'">Next</a>';
}
Avatar billede s0mmer Nybegynder
16. april 2007 - 20:44 #8
Efter at have rettet får jeg:

Listet de første 4 billeder og knappen next, men hvis jeg trykker på next sker der intet..
Avatar billede jakobdo Ekspert
16. april 2007 - 20:49 #9
Kontakt mig lige på msn: jakobdo [at] hotmail {dot} com
Avatar billede s0mmer Nybegynder
16. april 2007 - 20:52 #10
Har lige addet dig..
Avatar billede jakobdo Ekspert
16. april 2007 - 21:03 #11
Jeg synes ikke at kunne se dig online?
Avatar billede jakobdo Ekspert
16. april 2007 - 21:28 #12
Fejlen var der manglede & mellem $_GET['picsid'] og offset
Avatar billede jakobdo Ekspert
16. april 2007 - 21:29 #13
Og et svar!
Avatar billede jakobdo Ekspert
16. april 2007 - 22:41 #14
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