Zadejte hledaný výraz...

PHP Konverzácia ( správny SELECT )

Bokos
verified
rating uzivatele
6. 3. 2013 23:21:42
Ahojte, chcem sa spýtať ako na správny SELECT pri PHP správach.
1 ID int(11)
2 message_author int(11)
3 message_to int(11)
4 message_text int(11)
5 message_from varchar(50)
6 message_read int(2)
7 message_time int(11)
Ide o konverzáciu.
Napr.
Ty:
text
Jano:
text
Jano:
text
Ty:
text
Neviem správne pripojiť tabuľku users ( user_id, user_name, user_surname ).
6. 3. 2013 23:21:42
https://webtrh.cz/diskuse/php-konverzacia-spravny-select#reply874764
Martin
verified
rating uzivatele
(62 hodnocení)
6. 3. 2013 23:41:14
Nějak jsem nepochopil, co potřebuješ. To máš jako tabulku v MySql databázi se zprávama a chceš, aby jsi v jednom dotaze dostal i např. jméno autora zprávy z tabulky users? Nebo jak to myslíš.
6. 3. 2013 23:41:14
https://webtrh.cz/diskuse/php-konverzacia-spravny-select#reply874763
init.22
verified
rating uzivatele
(7 hodnocení)
6. 3. 2013 23:41:26
Z poskytnuté struktury a ukázky konverzace není úplně jasné, které hodnoty z DB se mají vypsat - předpokládám správně, že zprávy, které píše uživatel "Ty" jsou nějaké anonymní (např. nepřihlášený uživatel) a ten v tabulce users tedy není? Potom bych použil následující dotaz (ke každé zprávě zkusí připojit uživatele a pokud se uživatel nenajde, tak jako jeho jméno se použije "Ty"). LEFT JOIN funguje na principu, že se zkusí najít záznam z druhé tabulky (users) - pokud se ale nenalezne, tak se použije záznam i z té první tabulky (messages) a všechny selectované hodnoty té druhé tabulky budou mít hodnotu NULL - naopak klasický JOIN vyhodí záznamy, které se nenajdou v obou tabulkách. Takže bych použil funkci ISNULL nebo COALESCE, která pokud je hodnota prvního parametru NULL vypíše hodnotu zadanou v druhém parametru (Ty).
Snad se tedy chápeme :)
6. 3. 2013 23:41:26
https://webtrh.cz/diskuse/php-konverzacia-spravny-select#reply874762
Pro odpověď se přihlašte.
Přihlásit