Autor | Zpráva | ||
---|---|---|---|
Neas Profil |
#1 · Zasláno: 5. 7. 2011, 20:37:44 · Upravil/a: Neas
ahoj
rád bych si na svých stránkách udělal něco podobného, jako hlavní stránka facebooku po přihlášení, tj. lidé píší příspěvky a vám se zobrazí jen příspěvky vaše a lidí, které máte ve friendlistu. narazil jsem však na problém při sql dotazu, který z databáze tyto příspěvky vybírá. zatím se mi povedlo udělat pouze dotaz, který vybere všechny příspěvky (které nejsou odpověďmi, tohle budu řešit později), bez ohledu na friendlist: SELECT c.author_id, c.time, c.text, a.name, a.avatar, a.rank FROM comments c LEFT JOIN users a ON c.author_id=a.id WHERE c.parent_id=0 AND c.which_column="user_wall" ORDER BY c.time DESC LIMIT 30 (limit taky budu řešit až potom, pro jednoduchost jsem dal 30, v budoucnu přidám stránkovač.) přikládám také strukturu tabulky friendlists: id | request_send (ten, co žádost poslal) | recipient(ten, komu je adresována) | done (je-li žádost již přijata) rád bych vás tímto požádal o pomoc s sql dotazem, děkuji EDIT: ve zkratce potřebuji "jen" nějak přidat podmínku: WHERE c.author_id = jakékoli request_send nebo recipient z friendlists tam, kde se request_send nebo recipient (prostě ten druhý sloupec) rovná id právě přihlášeného uživatele |
||
Alphard Profil |
#2 · Zasláno: 7. 7. 2011, 12:12:17
Nejsem si jist, jestli je tabulka friendlist navržená ideálně, možná spíš více ty relace "rozbalovat", něco jako id_user a id_friend s tím, že pro přátelství by byly potřeba dva záznamy. Záleží, co jiného s tím děláte.
V současném stavu asi 2x pomocí left join připojit tabulku friendlist (pokaždé podle jiného sloupce) a pak dát podmínku, že aspoň jeden atribut nesmí být null, ale netusím, jak to bude rychlé (nezapomeňte na indexy). |
||
Časová prodleva: 8 dní
|
|||
Neas Profil |
#3 · Zasláno: 15. 7. 2011, 23:25:41
a když tabulku předělám podle Tvé rady, pak bych toho mohl docílit jak?
|
||
Časová prodleva: 13 let
|
0