/ 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
Problemer med forige id!!
Fra : Jeppe Christensen


Dato : 15-11-05 20:59

Har et lille problem med den skal tage det forige id:

mit styk kode ser således ud:

   $sidste = mysql_query("SELECT * FROM billeder WHERE id <
'$_GET[id]' LIMIT 0,1");
   $sidste_data = mysql_fetch_assoc($sidste);
   if(!$sidste_data){} else {echo "<br\><a
href='billede_stort.php?id=$sidste_data[id]'>Forige</a>";}

Problemet er at den går tilbage til det "aller første" id istedet
for det der kommer 1 før

Er også et next funktion som ser således ud:

   $next = mysql_query("SELECT * FROM billeder WHERE id >
'$_GET[id]' LIMIT 0,1");
   $next_data = mysql_fetch_assoc($next);
   if(!$next_data) {} else {echo "<br\><a
href='billede_stort.php?id=$next_data[id]'>Næste</a>";}

Det virker dog udmærket og springer kun en frem.

Kan i fortælle mig hvorfor min next funktion viker når min forige
funktion ikke virker?

--
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

 
 
Peter Brodersen (16-11-2005)
Kommentar
Fra : Peter Brodersen


Dato : 16-11-05 00:51

On 15 Nov 2005 19:59:00 GMT, Jeppe Christensen <mr.puity@gmail.com>
wrote:

>   $sidste = mysql_query("SELECT * FROM billeder WHERE id <
>'$_GET[id]' LIMIT 0,1");

Du sorterer ikke dit output, så det er lidt vilkårligt, hvilken række,
der kommer først ud. I simple tilfælde vil det være den første række.
Du bestemmer rækkefølgen med ORDER BY før din LIMIT, fx:

ORDER BY id DESC

Du kan også rette * til id, idet der ikke er nogen grund til at hive
al indhold ud.

Det giver så (fx på én linje):

$sidste = mysql_query("SELECT id FROM billeder WHERE id <
'$_GET[id]' ORDER BY id DESC LIMIT 0,1");

>   $next = mysql_query("SELECT * FROM billeder WHERE id >
>'$_GET[id]' LIMIT 0,1");

Det er ikke garanteret, at den bliver ved med at virke, idet du heller
ikke sorterer resultatsættet her. Så jeg vil foreslå:

$next = mysql_query("SELECT id FROM billeder WHERE id >
'$_GET[id]' ORDER BY id LIMIT 0,1");

--
- Peter Brodersen

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste