Autor | Zpráva | ||
---|---|---|---|
cislo5 Profil * |
#1 · Zasláno: 17. 4. 2009, 10:19:38
Mam problem pri sestaveni selectu:
Mam: pole ve kterem je seznam IDskupin do kterych patrim $myGROUP = Array ... Vazebni tabulku: v_objektskupina (IDobjektu, IDskupiny) - vyjadruje souvstaznost, ktere skupiny maji k dispozici jake objekty a tabulku: t_objektu (IDobjektu, typ[slozka;soubor];nazev) - vyjadruje seznam ulozenych objektu a v typu je stanoveno ze se jedna o slozku nebo soubor Chtel bych dotaz, ktery mi vybere vsechno co t_objektu.typ='slozka' a zaroven je platne to, ze jsem opravnen tento objekt (slozku) videt. Diky vazebni tabulce, kde jsou nastaveny jake skupiny vidi jake objekty. Neduplicitni vypis v pripade, ze jsem clenem vice skupin najednou a tentyz objekt je taktez pro stejne skupiny. Mysql_Query("SELECT * FROM v_objektskupina, t_objektu WHERE v_objektskupina.IDskupiny LIKE '%".implode("%' OR IDskupiny LIKE '%", $myGROUP)."%' and t_objektu.IDobjektu = v_objektskupina.IDobjektu and t_objektu.typ='slozka' GROUP BY t_objektu.IDobjektu"); - tento select mi vyhodí vše ač objekt videt nemám :-( pomůže někdo, prosím? |
||
Joker Profil |
#2 · Zasláno: 17. 4. 2009, 10:22:03
cislo5
A IDskupiny je řetězec? Jak vypadá výsledný sestavený dotaz? |
||
cislo5 Profil * |
#3 · Zasláno: 17. 4. 2009, 10:45:33
IDskupiny v tabulce v_objektskupina je typu varchar(10) a ve zkutecnosti se tam uklada retezec pismen (napr.: Sadm = Skupina administrator)
|
||
cislo5 Profil * |
#4 · Zasláno: 17. 4. 2009, 10:48:55
Proveril jsem zda pole $myGROUP obsahuje hodnoty IDskupin ke kterym patrim a tam je vse v poradku pole $myGROUP obsahuje napr. $myGROUP[Sadm]
|
||
Joker Profil |
#5 · Zasláno: 17. 4. 2009, 10:49:22 · Upravil/a: Joker
cislo5
A určitě se má vybírat podle podřetězce? Tj. to "Sadm" se vybere i když dám hledat třeba "a"? edit: Jo a ve většině případů by asi číselné ID bylo lepší. |
||
Kajman_ Profil * |
Mysql_Query("SELECT distinct t_objektu.* FROM v_objektskupina, t_objektu WHERE v_objektskupina.IDskupiny in ('".implode("','", $myGROUP)."') and t_objektu.IDobjektu = v_objektskupina.IDobjektu and t_objektu.typ='slozka'"); |
||
Joker Profil |
#7 · Zasláno: 17. 4. 2009, 10:51:04
cislo5
Proveril jsem zda pole $myGROUP obsahuje hodnoty IDskupin Pošlete, jak vypadá už sestavený SQL dotaz. |
||
cislo5 Profil * |
#8 · Zasláno: 17. 4. 2009, 11:04:50
Finalni dotaz vypada odlisne, ale princip zustava zachovan:
$SQLdotaz = Mysql_Query("SELECT * FROM v_nastenkaskupiny, t_nastenky WHERE v_nastenkaskupiny.IDskupiny LIKE '%".implode("%' OR IDskupiny LIKE '%", $myGROUP)."%' and t_nastenky.IDnastenky = v_nastenkaskupiny.IDnastenky GROUP BY t_nastenky.IDnastenky"); |
||
cislo5 Profil * |
#9 · Zasláno: 17. 4. 2009, 11:07:10
Pole myGROUP se tvori takto:
$SQLdotaz = Mysql_Query("SELECT IDskupiny FROM vazbauzivatelskupina WHERE IDuzivatele='$IDuzivatele'"); $pole=array(); while ($row = mysql_fetch_array($SQLdotaz)) { $pole[]=$row["IDskupiny"]; } |
||
Kajman_ Profil * |
#10 · Zasláno: 17. 4. 2009, 11:15:19
Tak to se můžete na pole vykašlat a napsat dotaz rovnou...
SELECT distinct t.* FROM v_objektskupina vos, t_objektu t, vazbauzivatelskupina vus WHERE vus.IDuzivatele = '$IDuzivatele' and vos.IDskupiny = vus.IDskupiny and t.IDobjektu = vos.IDobjektu and t.typ = 'slozka' |
||
cislo5 Profil * |
#11 · Zasláno: 17. 4. 2009, 12:07:13
nj opravdu to pomohlo, moc vam dekuju
|
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0