Autor Zpráva
jara*6
Profil *
Mam funkcni select, který mi vybere IDuzivatele dle toho zda patri nebo nepatri do urcite skupiny, ktere definuji v $poleskupin. Vazebni tabulkou mezi IDuzivatele a IDskupiny je tabulka s nazvem v_uzivatelskupina. Vše pracuje dobre az do chvile, kdy bych potřeboval uzivatele seradit podle prijmeni. Vazebni tabulkou by tedy mela byt t_uzivatele (ve kter je sloupec prijmeni a take IDuzivatele).


$poleskupin = Array ("Spmu", "Szam");
$SQLdotaz1 = Mysql_Query("SELECT DISTINCT IDuzivatele FROM v_uzivatelskupina WHERE IDskupiny LIKE '%".implode("%' OR IDskupiny LIKE '%", $poleskupin)."%'");

Zkousel jsem mozne i nemozne i tohle:

$SQLdotaz1 = Mysql_Query("SELECT * FROM v_uzivatelskupina, t_uzivatele WHERE v_uzivatelskupina.IDskupiny LIKE '%".implode("%' OR v_uzivatelskupina.IDskupiny LIKE '%", $poleskupin)."%' GROUP BY t_uzivatele.IDuzivatele ORDER BY t_uzivatele.prijmeni");

ale tento select mi sice vse setridi, ale projistotu me vybere vsechny IDuzivatele bez ohledu zda do prislusnych skupin patri nebo ne, co nechci.

Muzete-li prosim o vasi radu
Dekuji
Kajman_
Profil *
V dolním dotaze chybí provázání těch dvou tabulek... něco jako WHERE v_uzivatelskupina.IDskupiny = t_uzivatele.IDskupiny AND (more like).
Další problémy budou díky tomu, že like %1% vyhoví i např. skupiny 10 a 21? Pokud může být jeden uživatel ve více skupinách, udělejte třetí tabulku, kde budou tyto vazby.
jara*6
Profil *
Jo promin v euforii ve zkouseni ruznych moznosti jsem to zapomel vrazit, ale i presto vysledek stejny. IDskupiny jsou stanoveny znakove tedy napr: Spm, Szmu takze s problemem ve spojeni s LIKE by nemuselo dojit (ale dobra pripominka)


$SQLdotaz1 = Mysql_Query("SELECT * FROM v_uzivatelskupina, t_uzivatele WHERE v_uzivatelskupina.IDskupiny LIKE '%".implode("%' OR v_uzivatelskupina.IDskupiny LIKE '%", $poleskupin)."%' and t_uzivatele.IDuzivatele = v_uzivatelskupina.IDuzivatele GROUP BY t_uzivatele.IDuzivatele ORDER BY t_uzivatele.prijmeni");

takze i po doplneni t_uzivatele.IDuzivatele = v_uzivatelskupina.IDuzivatele === stale stejny :-(
Kajman_
Profil *
Tak ukažte kód s doplněním propojení tabulek. Musíte tam mít všechny or zazávorkované!
jara*6
Profil *
Díík právě jsi me nakopl: vzdy ony ty skupiny jsou pevne dane - ty ktere chci vybrat!

takze takhle:

SELECT * FROM v_uzivatelskupina, t_uzivatele WHERE (v_uzivatelskupina.IDskupiny = 'Spmu' OR v_uzivatelskupina.IDskupiny = 'Szam') and t_uzivatele.IDuzivatele = v_uzivatelskupina.IDuzivatele GROUP BY t_uzivatele.IDuzivatele ORDER BY t_uzivatele.prijmeni

a hotovo, dík
Toto téma je uzamčeno. Odpověď nelze zaslat.