Autor | Zpráva | ||
---|---|---|---|
kat Profil * |
#1 · Zasláno: 17. 8. 2006, 22:51:33
Dobrý den, mám dotaz:
'SELECT * FROM `lide` WHERE "'.$uzivatel.'" IN (`USERS`)' a nemůžu proště vytáhnout s tabulky `lide` uživatele, který se nachází v sloupci `USERS`. Mohli byste mi prosím poradit. Děkuji za připadné odpovědi |
||
Kajman_ Profil * |
#2 · Zasláno: 17. 8. 2006, 22:53:07
'SELECT * FROM `lide` WHERE `USERS` IN ("'.$uzivatel.'")'
|
||
kat Profil * |
#3 · Zasláno: 17. 8. 2006, 23:06:32
Díky moc, pomohlo to ;-), to jsem nevěděl, myslel jsem WHERE co vybírat IN (z ceho vybirat). Fakt diky moc
|
||
DoubleThink Profil * |
#4 · Zasláno: 18. 8. 2006, 10:04:33
IN je SQL ekvivalent k PHPkovské funkci in_array()
|
||
kat Profil * |
#5 · Zasláno: 18. 8. 2006, 11:21:36
Skutečně? V tom případě by to mělo jít:
WHERE IN(co,v cem) stejně jako in_array(co,v cem) Mýlím se? |
||
kat Profil * |
#6 · Zasláno: 18. 8. 2006, 11:27:06
Nebo jste to myslel podle toho, co funkce vrací?
|
||
Kajman_ Profil * |
#7 · Zasláno: 18. 8. 2006, 11:29:19
Já bych to moc nepřipodobňoval :-)
where `users`='jednojmeno' where `users` in ('jednojmeno','druhejmeno','tretijmeno') where `users` in (select `jmeno` from `jinatabulka`) |
||
kat Profil * |
#8 · Zasláno: 18. 8. 2006, 11:38:53
Já to potřebuju vytáhnout ale obráceně:
SELECT * FROM `skupina` WHERE 'Karel' IN (`USERS`) prostě potřebuju dostat skupinky, kde se Karel nachází ve sloupci `USERS`. Př.: skupina 1 : `USERS` : 'Monika, Lída, Karel' - do této bude patřit skupina 2 : `USERS` : ' Karel,Magda' - do této taky bude patřit skupina 3 : `USERS` : 'Linda,Ivana' - do této nebude patřit |
||
Kajman_ Profil * |
#9 · Zasláno: 18. 8. 2006, 11:42:02
To jako máte v jednom sloupečku uložené jména a čárkou oddělené? To je fuj, to se v databázových řešeních nedělá.
|
||
kat Profil * |
#10 · Zasláno: 18. 8. 2006, 11:42:40
aha, problém bude s těmi uvozovkami
|
||
kat Profil * |
#11 · Zasláno: 18. 8. 2006, 11:43:17
MOhl byste mi poradit, jak to děláte vy?
|
||
kat Profil * |
#12 · Zasláno: 18. 8. 2006, 11:53:06
Problém nebude s těmi uvozovkami, protože mám u každého uživatele zástupné ID
| `USERS` | ------------- |---------------|------------------ skupina 1 | 4,15,84,22 | skupina 2 | 6,48,22,2 | skupina 3 | 3,41,10 | a potřebuju vytáhnou číslo, kde určité číslo měnící se podle uzivatelova SESSION['id'] |
||
Kajman_ Profil * |
#13 · Zasláno: 18. 8. 2006, 13:03:17
skupina uzivatel
1 4 1 15 1 84 1 22 2 6 ... |
||
Joker Profil |
#14 · Zasláno: 18. 8. 2006, 16:49:12
kat:
Obecně je v databázích "fuj" ukládání více informací do jednoho sloupečku. Pak narazíte přesně na ten problém na který jste narazil, totiž že potřebujete vyhledávat řádky podle informace, která je zabudovaná uvnitř informace z nějakého sloupečku. Správný návrh je tan, co napsal Kajman_ |
||
kat Profil * |
#15 · Zasláno: 18. 8. 2006, 18:13:17
Rozumím Vám, můj problém takhle vyřešit nejde, protože jsem dosti omezen tím, že musím mít co skupinka to jeden záznam. Ale moc díky za rady. Vyřešl jsem to tím, že jsem udělal dva vnořené dotazy.
$v_MySQLresult=MySQL_Query('SELECT * FROM `groups` ORDER BY `NAME`'); while($v_MySQLdata=MySQL_Fetch_Array($v_MySQLresult)) { $v_MySQLresult2=MySQL_Query('SELECT * FROM `groups` WHERE '.$_SESSION['id'].' IN ('.$v_MySQLdata['USERS'].') AND `ID`=\''.$v_MySQLdata['ID'].'\''); while($v_MySQLdata2=MySQL_Fetch_Array($v_MySQLresult2)) { echo ' <OPTION VALUE="'.$v_MySQLdata2['ID'].'"'.(($v_MySQLdata2['ID']==$_SESSION['gro up']) ? ' SELECTED' : '').'>'.$v_MySQLdata2['NAME'].'</OPTION>'; } } |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0