» »

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č!

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;

Ziga Dolhar ::

Jezus. Many-to-many relacij ne mečeš v eno polje.
https://dolhar.si/

Ziga Dolhar ::

Sicer pa:

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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Podatkovne baze - SQL enostavne poizvedbe

Oddelek: Programiranje
72063 (1656) galu
»

SQL seštevanje

Oddelek: Izdelava spletišč
121539 (1323) pizdarija1
»

T-SQL preprost querry pa ne znam

Oddelek: Programiranje
171824 (1481) borchi
»

PHP - pomoč

Oddelek: Izdelava spletišč
131858 (1502) BlueRunner
»

login v phpju?

Oddelek: Programiranje
471620 (1280) rc-car

Več podobnih tem