Autor Zpráva
kat
Profil *
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 *
'SELECT * FROM `lide` WHERE `USERS` IN ("'.$uzivatel.'")'
kat
Profil *
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 *
IN je SQL ekvivalent k PHPkovské funkci in_array()
kat
Profil *
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 *
Nebo jste to myslel podle toho, co funkce vrací?
Kajman_
Profil *
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 *
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 *
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 *
aha, problém bude s těmi uvozovkami
kat
Profil *
MOhl byste mi poradit, jak to děláte vy?
kat
Profil *
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 *
skupina uzivatel
1 4
1 15
1 84
1 22
2 6
...
Joker
Profil
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 *
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>';
}
}
Toto téma je uzamčeno. Odpověď nelze zaslat.

0