Forum » Izdelava spletišč » PHP prikaz objav od prijateljev
PHP prikaz objav od prijateljev
d4vid ::
Pozdravljeni!
Delam neko skripto, in imam nekaj podobnega FBjevemu zidu - torej objave prijateljev. Zanima me, kako bi lahko to čim lažje izpeljal?
Objave imam v tabeli status, prijateljstvo pa v tabeli friends, kjer je narejeno takole: u1 (uporabnik, ki je poslal prošnjo) | u2 (drugi uporabnik) | potrjeno (da/ne) | datum. Zanima, me kako čim lažje izpelta to, da iz baze izbere samo objave, kjer je id enak u1, pri čemer je u2 enako moj id in obratno... Upam da razumete.
Hvala za pomoč!
Delam neko skripto, in imam nekaj podobnega FBjevemu zidu - torej objave prijateljev. Zanima me, kako bi lahko to čim lažje izpeljal?
Objave imam v tabeli status, prijateljstvo pa v tabeli friends, kjer je narejeno takole: u1 (uporabnik, ki je poslal prošnjo) | u2 (drugi uporabnik) | potrjeno (da/ne) | datum. Zanima, me kako čim lažje izpelta to, da iz baze izbere samo objave, kjer je id enak u1, pri čemer je u2 enako moj id in obratno... Upam da razumete.
Hvala za pomoč!
MisterR ::
Na novo naredi načrt baze, ti bo vnaprej lažje.
friends
- id
- ime
- priimek
- vzdevek
- prijatelji (sem not shranjuješ id-je vseh njegovih prijateljev npr 1,3,99,3 ki jih kasneje obdelaš s pomočjo serializacije)
status
- id
- objava (neko besedilo)
- id_friend (to je id avtorja objave)
za odobritev/zavrnitev prijateljstva uporabiš vmesno tabelo ali pa narediš še eno polje "zavrnjeni" in tja not shranjuješ id-je tistih katere je uporabnik zavrnil.
Drugače pa
select objava from statusi WHERE $id_uporabnika = $id_prijatelja;
friends
- id
- ime
- priimek
- vzdevek
- prijatelji (sem not shranjuješ id-je vseh njegovih prijateljev npr 1,3,99,3 ki jih kasneje obdelaš s pomočjo serializacije)
status
- id
- objava (neko besedilo)
- id_friend (to je id avtorja objave)
za odobritev/zavrnitev prijateljstva uporabiš vmesno tabelo ali pa narediš še eno polje "zavrnjeni" in tja not shranjuješ id-je tistih katere je uporabnik zavrnil.
Drugače pa
select objava from statusi WHERE $id_uporabnika = $id_prijatelja;
Ziga Dolhar ::
Sicer pa:
Disclaimer. S spletnim razvojem (PHP & rDBMS) se ne ukvarjam nekje od leta 2006. Vsekakor preveri sintakso, še posebej:
- glede JOINa (ali je potreben LEFT, INNER ali kak drugi ...),
- glede subselecta (tu sem sintakso in uporabo že precej pozabil, saj jih niti nisem uporabljal, ker je MySQL šele precej pozno dobil podporo).
Kodo vsekakor jemlji bolj kot "psevdokodo" kot sintaktično pravilen zapis :).
SELECT s.objava [potrebni podatki o objavi], u.ime [potrebni podatki za prikaz objavljajočega] FROM status AS s JOIN users AS u ON u.id = s.uid, WHERE s.uid = ( SELECT friends.uid1 WHERE friends.uid2 = $mojID AND friends.potrjeno = TRUE ) OR s.uid = ( SELECT friends.uid2 WHERE friends.uid1 = $mojID AND friends.potrjeno = TRUE )
Disclaimer. S spletnim razvojem (PHP & rDBMS) se ne ukvarjam nekje od leta 2006. Vsekakor preveri sintakso, še posebej:
- glede JOINa (ali je potreben LEFT, INNER ali kak drugi ...),
- glede subselecta (tu sem sintakso in uporabo že precej pozabil, saj jih niti nisem uporabljal, ker je MySQL šele precej pozno dobil podporo).
Kodo vsekakor jemlji bolj kot "psevdokodo" kot sintaktično pravilen zapis :).
https://dolhar.si/
MrBrdo ::
Ok serializacija many-to-many relationshipa je res no-go tako kot je že Dolhar napisal.
MrBrdo
d4vid ::
Še eno vprašanje, da ne odpiram teme. Imam iskanje, ki išče npr. prijatelje. Ča vtipkam noter Janez, bo našlo Janez Novak, Janez Nekaj... Ča pa napišem noter Janez Novak pa naj bi našlo samo Janeza Novaka, lahko tudi druge, vglavem eno besedo (npr. Janez) imam v enem stolpcu, drugo v drugem. Pa me zanima, kako naj to izpeljem.
MrBrdo ::
mislim da maš več opcij... eno je da delaš ORe (name = 'Janez' OR surname = 'Janez) AND (name = 'Novak' OR surname = 'Novak'), druga možnost je pa da uporabiš CONCAT funckije ki jih maš v SQL, in concantaš name in surname pa pol kej s tem...
MrBrdo
Ziga Dolhar ::
bajdec, bi bil vesel kaj feedbacka, ali ti zgornji SQL dela al ne.
https://dolhar.si/
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Podatkovne baze - SQL enostavne poizvedbeOddelek: Programiranje | 2063 (1656) | galu |
» | SQL seštevanjeOddelek: Izdelava spletišč | 1539 (1323) | pizdarija1 |
» | T-SQL preprost querry pa ne znamOddelek: Programiranje | 1824 (1481) | borchi |
» | PHP - pomočOddelek: Izdelava spletišč | 1858 (1502) | BlueRunner |
» | login v phpju?Oddelek: Programiranje | 1620 (1280) | rc-car |