/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Næste billede i et galleri system...
Fra : Jeppe Christensen


Dato : 12-11-05 15:44

Jeg har et galleri-system der kører over en mysql database. Det
jeg ønsker er at den skal tjekke om der findes er "næste" eller
"forige" id med samme emne som aktuelle "id".

Koden ser således ud:

<?php   
   require("config.php");
   mysql_connect("$server","$user","$password");
   mysql_select_db("$database");
   
   $destinationLarge   = "upload/billeder/large/";
   
   $query = mysql_query("SELECT * FROM billeder WHERE
id='$_GET[id]'");
   while ($row = mysql_fetch_assoc($query)) {
$emne = $row[emne];
   echo "<img src='$destinationLarge$row[billede]'><br>
               $row[billede]";
   }

?>

Det den skal gøre er at vise "forige" og "næste" der hvor emne er
lige med det pågælende emne. Og self. ikke skrive hverken forige
eller næste hvis der ikke er nogen med pågælende emne.


mvh. Jeppe

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Michael (12-11-2005)
Kommentar
Fra : Michael


Dato : 12-11-05 17:39

> Det den skal gøre er at vise "forige" og "næste" der hvor emne er
> lige med det pågælende emne. Og self. ikke skrive hverken forige
> eller næste hvis der ikke er nogen med pågælende emne.

Du må forsøge dig med en LIMIT $numrows, $offset

> $query = mysql_query("SELECT * FROM billeder WHERE
> id='$_GET[id]' LIMIT 20, $offset");

<a href=".php?offset=<?PHP print ($_GET['offset'] + 20); ?>">Næste</a>

--
Mvh.
Michael



Jeppe Christensen (12-11-2005)
Kommentar
Fra : Jeppe Christensen


Dato : 12-11-05 19:53

> <a href=".php?offset=<?PHP print ($_GET['offset'] + 20); ?>">Næste</a>


Hmm kan du måske fortælle mig lidt nærmere, hvad det er jeg skal gøre...

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Christoffer (13-11-2005)
Kommentar
Fra : Christoffer


Dato : 13-11-05 12:35


"Jeppe Christensen" <mr.puity@gmail.com> skrev i en meddelelse
news:437639fb$0$41138$14726298@news.sunsite.dk...
>> <a href=".php?offset=<?PHP print ($_GET['offset'] + 20); ?>">Næste</a>
>
>
> Hmm kan du måske fortælle mig lidt nærmere, hvad det er jeg skal gøre...

Måske du kan bruge det her til lidt hjælp.
http://buur.info/christoffer/tests/pageing.phps

--
Christoffer



Kasper Johansen (14-11-2005)
Kommentar
Fra : Kasper Johansen


Dato : 14-11-05 22:22

"Jeppe Christensen" <mr.puity@gmail.com> skrev i en meddelelse
news:4375ffb7$0$41148$14726298@news.sunsite.dk...
> Jeg har et galleri-system der kører over en mysql database. Det
> jeg ønsker er at den skal tjekke om der findes er "næste" eller
> "forige" id med samme emne som aktuelle "id".

Hvis du vil kunne regne ud hvilket billedet der kommer næste gang, er det
vigtigt at du bruger en "ORDER BY" i din MySQL-sætning. I dette tilfælde
bruger jeg "ORDER BY id".

Jeg regner ligeledes med at du kan viser et enkelt billede af gangen. Netop
derfor skal du undgå en while-løkke, samt beskære din forspørgsel til kun et
resultat. Dette gøres med "LIMIT 0,1".

Din forspørgsel ser altså nu sådan ud:
mysql_query("SELECT * FROM billeder WHERE id = '$id' ORDER BY nr LIMIT
0,1");

Nu er det let at regne ud hvilket der er det næste (jeg regner med at dit id
er et tal, der automatisk forhøjes).
mysql_query("SELECT * FROM billeder WHERE id > '$id' ORDER BY nr LIMIT
0,1");

Du kan også finde det forrige, ved at ændre en meget lille smule i det
foregående query:
mysql_query("SELECT * FROM billeder WHERE id < '$id' ORDER BY nr DESC LIMIT
0,1");


Resultaterne fra disse forspørgsler vil altså give dig:

1. Det nuværende billede
2. Det næste billede, set i forhold til sorteringen efter feltet "id".
3. Det forrige billede, set i forhold til sorteringen efter feltet "id".



Desuden...
Hvis du bare vil vise et enkelt billede (typisk når du laver LIMIT 0,1), er
det som sagt dumt at bruge en while-løkke. Gør således:

<?
$query = mysql_query("SELECT * FROM billeder WHERE id = '$id' LIMIT 0,1");
$data = mysql_fetch_assoc($query);

//Resten af koden
echo "Lalala siger Dolph";
?>


Desuden...
Det er godt at du bruger mysql_fetch_assoc(), så PHP ikke skal bruge ekstra
ressourcer på at sætte unødvendige data i resultat-arrayet.


Vær opmærksom på at jeg ikke har testet noget af den kode, som at jeg har
skrevet.


--
Mvh Kasper Johansen



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste