Autor Zpráva
Taps
Profil
mám tento kod,

$sql=mysql_query("select *,DATE_FORMAT(odeslano,'%d.%m.%Y %H:%i:%s') as
odeslano from prijate_zpravy where komu='$id'");

pomocí, kterého vyberu zprávy příslušnému uživateli s požadovaným id. A chci se
zeptat jak mám příkaz upravit když sloupeček komu obsahuje více id tzn. že
zpráva byla zaslána více uživatelům
djlj
Profil
To podle toho, v jakém formátu to máš uloženo v komu.
Taps
Profil
djlj
id mám uložené takto 1,2,3, atd.
djlj
Profil
Můžeš zkusit WHERE '".$id."' IN (komu)
Taps
Profil
djlj
nefunguje
nightfish
Profil
where komu like '$id,%' or komu like '%,$id,%' or komu like '%,$id'

(to ošetřuje 3 možné případy - tzn. kdy je hledané $id na začátku sloupce "komu", uprostřed a na konci (
Kajman_
Profil *
případně
where find_in_set('$id',komu)
Kajman_
Profil *
A jen poznámka, že takhle se data do db ukládat nemají. Lepší a rychlejší budou výsledky s vazební tabulkou.
error414-
Profil *
where komu like '$id,%' or komu like '%,$id,%' or komu like '%,$id'

to je podle me overkill. Tohle je jasna ralace M:N. Takze bych to resil pomoci asociacni tabulky. Myslim ze je to lepsi reseni nez pouziti LIKE.
Taps
Profil
Kajman_
nightfish
error414-
Tak mi zkuste napsat jak nejlépe vyřešit můj problém, jak by jste to udělali vy?
Taps
Profil
Kajman_
myslíš že teda bude lepší udělat novou tabulku, kde budu mít uložené jen hromadné zprávy ?
error414_
Profil
http://www.abclinuxu.cz/clanky/navody/tvorba-databazi-v-mysql-i

Relace M:N
nightfish
Profil
error414-
nikde jsem netvrdil, že řešení pomocí "like" je nejlepší možné - nicméně je to jedna z funkčních možností nad daným databázovým schématem
error414_
Profil
nightfish ja na tebe take neutocim, jen jsem napsal ze s tim resenim nesouhlasim a navrhl jsem jine reseni. nic ve zlem

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0