Autor | Zpráva | ||
---|---|---|---|
davef6 Profil |
#1 · Zasláno: 31. 1. 2009, 15:18:26
Dobrý den,
je nějak možné vypsat tento případ: mám nějaké kategorie které se vypisují a pod nimi bych chtěl aby z každé kategorie se vypsalo 5 obrázků............pujde to nějak jedním dotazem? takto jednoduše vypisuji kategorie select orig_nazev, id from img_blok order by cas desc ještě jsem zapomněl uvést že kategorie a images jsou provázány kategorie.id = images.id_kat děkuji za rady |
||
tiso Profil |
#2 · Zasláno: 31. 1. 2009, 17:03:38
davef6
„ from img_blok“ „kategorie.id = images.id_kat“ Ako sa naozaj volajú tie tabuľky? A aké stĺpce obsahujú? |
||
Kajman_ Profil * |
#3 · Zasláno: 31. 1. 2009, 17:09:23
Včera se tu odkazovalo na možné řešení...
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=28&topic=79886#2 |
||
Kajman_ Profil * |
#4 · Zasláno: 31. 1. 2009, 17:31:25
A ještě by šel jiný přístup, vyzkoušejte si, co bude rychlejší...
select k.*, i.* from kategorie k, images i, (select i1.id from images i1 left join images i2 on i1.id_kat = i2.id_kat and i1.id < i2.id group by i1.id having count(i2.id) < 5) t where k.id = i.id_kat and i.id = t.id |
||
davef6 Profil |
#5 · Zasláno: 31. 1. 2009, 21:00:35
díky, vyzkoušim:)
|
||
davef6 Profil |
#6 · Zasláno: 2. 2. 2009, 10:56:11 · Upravil/a: davef6
nakonec jsem použil toto
select i.*,m.* from img_blok i left join images m on i.id_kategorie = m.podkat and m.thumb_link<=ifnull((select a.thumb_link from images a where m.kat=a.kat order by a.cas limit 5),m.thumb_link) ale píše mi to Subquery returns more than 1 row složení tabulky images (id, thumb_link, cas, podkat) img_blok (id, nazev, cas, id_kategorie) kde podkat=id_kategorie podkat je jediná a id_kategorie je podle počtu obrázků Ještě jednou potřebuji výpis kategorii z img_blok a pod každou kategoríí 5 obrázků z images děkuji všem za reakce |
||
Kajman_ Profil * |
#7 · Zasláno: 2. 2. 2009, 11:22:11
Ale podle příkladu, tam má být limit 4,1. A také musí být stejné to, co vybíráte a podle čeho řadíte - jinak to nebude fungovat.
A ještě se tu o víkendu řešil úplně jiný přístup, možná bude ještě o chlup rychlejší. http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=28&topic=89155#10 |
||
davef6 Profil |
#8 · Zasláno: 2. 2. 2009, 11:56:48
tak jsem to upravil, ale funguje to jen částečně
select i.*,m.* from img_blok i left join images m on i.id = m.podkat and m.thumb_link<=ifnull((select a.thumb_link from images a where m.podkat=a.podkat limit 4,1),m.thumb_link) where i.id_kategorie='$id_kat' výpíše to název kategorie a pod tím obrázek, další znovu název kategorie a druhý obrázek (ne stejný) atd.....podle počtu obrázků do 5ti, potřeboval bych aby to vypsalo pouze jednou nadpis kategorie a pod to se vložilo těch 5 obrázků. děkuji za trpělivost:) |
||
Kajman_ Profil * |
#9 · Zasláno: 2. 2. 2009, 12:33:37
Název kategorie si vypište jen, pokud se změnil. A v tom poddotaze Vám chybí order by a.thumb_link - bez toho to asi nebude fungovat správně.
|
||
davef6 Profil |
#10 · Zasláno: 2. 2. 2009, 13:21:09
zkoušel jsem použít distinct pak ještě group by, ale vždy mi to vrátilo pořád to co nechci:(
|
||
Kajman_ Profil * |
#11 · Zasláno: 2. 2. 2009, 13:46:53
Tohle se už řeší v aplikaci a ne v sql. V php (nebo v čem si to vypisujete) si ukládejte poslední název kategorie. Vypište název jen pokud se minulý název liší od názvu v aktuálním řádku.
|
||
davef6 Profil |
#12 · Zasláno: 2. 2. 2009, 13:53:09
ok, moc děkuji za pomoc:)
|
||
davef6 Profil |
#13 · Zasláno: 2. 2. 2009, 23:31:53
ještě bych měl jeden menší dotaz:)
select i.*, m.thumb_link from img_blok i left join images m on i.id = m.podkat and m.thumb_link<=ifnull((select a.thumb_link from images a where m.podkat=a.podkat order by a.thumb_link limit 7,1),m.thumb_link) where i.id_kategorie='$id_kat' order by i.cas desc potřeboval bych doplnit stránkování.......mám skript v php kde vždy do dotazu stačí nakonec doplnit limit $zacatek, $konec bohužel u tohoto dotazu to nejde, jde to řešit jinak? |
||
Časová prodleva: 15 let
|
0