Autor Zpráva
caradoc
Profil *
Dobrý den, mám prosbu,

tabulka:
ID jmeno fotka opravneni
=========================
1 Adam 1.jpg admin
2 Pavel 2.jpg admin
3 Monika 3.jpg uzivatel
4 Lucka 4.jpg admin
5 Monika 5.jpg uzivatel
6 Monika 6.jpg uzivatel

Jak vybrat pomocí selectu fotografii ID3, tak abych zadal podmínku "vyber fotku ID3, ale zjisti že další fotka bude ID5" (dotaz vrátí dva záznamy)
Laicky řečeno, Monika uvidí fotku ID3, a může kliknout na ikonu "další foto" která bude odkazovat na fotku ID5, atd, atd, a totéž opačným směrem. Pokud Monika bude sledovat fotku ID5, ikona "předchozí foto" bude odkazovat na ID3 a ikona "další foto" bude odkazovat na ID6 (databáze vrátí 3 záznamy)
děkuji za příklady, s pozdavem Caradoc
Kajman_
Profil *
select t.* from tabulka t where t.id=3


(select 'predchozi' smer, t.id from tabulka t where t.jmeno='Monika' and id < 3 order by id desc limit 1)
union all
(select 'predchozi' smer, t.id from tabulka t where t.jmeno='Monika' and id > 3 order by id limit 1)


A pokud stačí to id, tak by to možná šlo i s využitím kolerovaných dotazů...

select t.*, 
(select t1.id from tabulka t1 where t1.jmeno=t.jmeno and t1.id < t.id order by t1.id desc limit 1) predchoziid
(select t2.id from tabulka t2 where t2.jmeno=t.jmeno and t2.id > t.id order by t2.id limit 1) dalsiid
 from tabulka t where t.id=3
kokolino
Profil *
Kajman:
co znamena to union all na konci selektu riadok 2 myslim ,

a ak je v selekte
select 'predchozi' smer, t.id from tabulka t where t.jmeno='Monika' and id > 3 order by id limit 1

nezobrazi sa obrazok s id =4 ?a a z potom s id 5 ?
pytam sa len preto,ze on pisal poziadavku,ze po 3 obrazku ma ist 5

len zacinam s mysql, takze predom zakujem za vysvetlenie
Kajman_
Profil *
kokolino:
o znamena to union all
Zkuste si na union kliknout, je to podtržené.

nezobrazi sa obrazok s id =4 ?a a z potom s id 5 ?
Ale id=4 přeci neodpovídá podmínce t.jmeno='Monika', tak tam nebude.
caradoc
Profil *
Kajman
použil jsem tebou uvedený druhý příklad, a funguje zcela dokonale, děkuji za pomoc,
Caradoc

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0