Autor Zpráva
Anonym
Profil
Dobrý den, mám zde takový problém:
$comps_id = $comps['id'];
$comps_name = $comps['composer'];
$comps_ost = mysql_num_rows(mysql_query("SELECT * FROM soundtracks WHERE composer_id='$comps_id'"));

Počítám soundtracky, které složili daní skladatelé podle composer_id. Mám problém, že do políčka composer_id chci ukládat více hodnot, např. id 1 a 11, ale nevím jak nastavit aby se to $comps_id (ve kterém je aktuální id skladatele) porovnalo s oběma hodnotama, tj. s 1 i s 11. Všem moc děkuji za odpověd. :)
ahoj
Profil *
K tomu dvě tabulky nestačí. Ze soundtracks smaž sloupec composer_id a vyrob si třetí tabulku, třeba autori, kde bude IDsountracku, IDcomposera. Je to běžný a osvědčený postup.
Ugo
Profil
2 tabulky jsou málo no, pokud bys to ale přecijen chtěl (spíš z teoretické roviny), tak není nic lehčího než si "vytvořit" formát ve kterém jde nějak hledat, například já používám ",1,2,11,". Když víš že je vždy formát ,#, tak můžeš hledat likem, ale je jen hodně málo případu kdy je to výhodné (když s tím nepotřebuješ pracovat na úrovni db především, na občasné hledání to ještě jde oželet)

Návrh tabulek je stejný jako třeba návrh tříd nebo funkcí, snaž se jim dávat co nejmenší logické celky na starost, něco jiného pak budou ohromné databáze jako máme v práci (ale i tady je to z 50% špatný návrh :-) )
Tori
Profil
Anonym:
Ty uvedené tři řádky jsou uvnitř nějakého cyklu, kterým načítáte ID jednotlivých skladatelů? Jestli ano, tak až budete mít hotové ty změny podle [#2], koukněte se na spojování tabulek a seskupování záznamů, jak se dá jediným dotazem zjistit ID a jméno skladatelů + počet soundtracků, na kterých se podíleli.


Ugo:
není nic lehčího než si "vytvořit" formát ve kterém jde nějak hledat, například já používám ",1,2,11,". Když víš že je vždy formát ,#, tak můžeš hledat likem
Na tohle existuje nativní funkce MySQL, která je podstatně rychlejší, než LIKE. Nicméně je primárně určená pro sloupce typu SET, a v jiném případě bych (určitě ne začátečníkovi) neradila používat. Zlozvyky se odnaučují pomalu.
Anonym
Profil
Děkuji všem. :)


Mohli byste mi prosím ještě poradit, měl jsem kod:
$soundtracks_sql = mysql_query("SELECT * FROM soundtracks WHERE composer_id='$comp_ov_id' ORDER BY name DESC");
z něho jsem pak vše vypisoval. Nevím co s tím, jak to upravit aby mi vyšlo to stejné :/


EDIT: Vyřešeno. :)

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: