Avatar billede pitzen Nybegynder
14. august 2006 - 23:30 Der er 11 kommentarer og
1 løsning

Galleri-problem

Hej Eksperter.

http://www.humorfreak.dk/2

På ovenstående side, har jeg under fanebladet "Billeder" lavet en fil (visbillede.php) som viser billederne sorteret efter ID. (Klik på et tilfældigt billede og bladr videre).

Når man klikker "næste" viser den billeder med efterfølgende ID. Altså ser du billede-id 1 og klikker på næste ser du billede-id 2. Problemet er bare, at hvis jeg sletter et billede fra databasen, kommer der et hul i rækken. Desuden vil jeg gerne kunne udvælge billeder fra bestemte kategorier, så man KUN bladre blandt dem. Hvordan skal min Mysql_query se ud?

Jeg har følgende kolonner i tabellen "billeder": ID og kategori.

Jeg kan poste mit script hvis det kan hjælpe!?

Pf. tak!

Morten P
Avatar billede Slettet bruger
15. august 2006 - 00:40 #1
Lad os lige prøve at se dit script.
Avatar billede fojensen Nybegynder
15. august 2006 - 08:49 #2
Hvordan skal min Mysql_query se ud? Hmm - tror ikke bare det er query der skal rettes til...

hvis jeg sletter et billede fra databasen, kommer der et hul i rækken - hvis billedetabellen har relationer til andre tabeller skal relationerne slettes også, ellers opstår der huller.

men det ku' nu se ud som om det kun er billedfilen der slettes, men rækken i databasen stadig findes.

bare lidt hjælp til hvor du skal koncentrere fejlfindingen...
Avatar billede jakobdo Ekspert
15. august 2006 - 09:07 #3
Det med næste og forrige, der kan du måske søge lidt hjælp i denne tråd: http://www.eksperten.dk/spm/725916

Din query skal vel være noget i stil med: SELECT billede FROM billede WHERE kategori = noget ORDER BY billede-id
Avatar billede pitzen Nybegynder
15. august 2006 - 14:00 #4
$res = mysql_query("select * from billeder where cat="1" and godkendt='1'");
$count = mysql_num_rows($res);

if($id!=$count){
$next = $id -1;
$next = "<a href='$PHP_SELF?id=$next'>Næste »</a>"; }
else{
$next = "Næste »"; }
if($id!=1){
$previous = $id +1;
$prev = "<a href='$PHP_SELF?id=$previous'>« Forrige</a>"; }
else{
$prev = "« Forrige"; }

--------------------------------

Desuden skal "næste" og "forrige"-knapperne være deaktiveret når der ikke er flere ID's i rækken.

Fojensen>> Det er korrekt at der ikke kommer huller i rækken, men når godkendt='1', bliver de sorteret fra! Og så alligevel ikke, når jeg bare springer fra ID til ID..

Håber i kan hitte ud af det ;)
Avatar billede jakobdo Ekspert
15. august 2006 - 14:12 #5
Du har vel også et ID som du trækker ud?
Avatar billede pitzen Nybegynder
15. august 2006 - 14:18 #6
$res = mysql_query("select * from billeder where cat="1" and godkendt='1' order by id desc limit $from,16");
$row = mysql_fetch_array($res);

$id = $row["id"];

---------------------------------------

Som regel kommer man fra siden "billeder.php" hvor billederne linker til siden "visbillede.php?id=xxx". Så på den måde henter jeg ID'et.
Avatar billede jakobdo Ekspert
15. august 2006 - 14:25 #7
HVad med noget i stil med:

$nextQ = mysql_query("SELECT * FROM billeder WHERE cat="1" AND godkendt='1' ID > $id ORDER BY ID LIMIT 1");
if(mysql_num_rows($nextQ)==1)
{
    $next = mysql_result($nextQ,0);
    $next = "<a href='$PHP_SELF?id=$next'>Næste »</a>";
}
else
{
    $next = "Næste »";
}

$prevQ = mysql_query("SELECT * FROM billeder WHERE cat="1" AND godkendt='1' ID < $id ORDER BY ID DESC LIMIT 1");
if(mysql_num_rows($prevQ)==1)
{
    $prev = mysql_result($prevQ,0);
    $prev = "<a href='$PHP_SELF?id=$prev'>« Forrige</a>";
}
else
{
    $prev = "« Forrige";
}
Avatar billede pitzen Nybegynder
15. august 2006 - 16:41 #8
Det ser fornuftigt ud. Men jeg har lige testet det og hverken frem eller tilbage virker. Mangler der ikke noget mellem godkendt='1' og ID?
Avatar billede jakobdo Ekspert
15. august 2006 - 18:27 #9
Jo da!
godkendt='1' AND ID > $id
og jeg ved så ikke om ID skal være ID eller id, det skal være som du har ID stående i tabellen.
Avatar billede pitzen Nybegynder
15. august 2006 - 19:10 #10
Det fungerer! Mange mange tak!

Post et svar! :D
Avatar billede jakobdo Ekspert
15. august 2006 - 19:12 #11
Svar!
Avatar billede jakobdo Ekspert
15. august 2006 - 20:12 #12
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