Phorum.ro
Your Avatar Welcome to Phorum.ro!
If you haven't registered yet, click here!
Attention Visitor:
You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
Du-te înapoi   Phorum.ro > Web Design & Web Development > Programare > PHP > PHP DB

PHP DB Discutii despre lucrul cu baze de date in PHP.

Răspunde
 
Thread Tools Moduri de afișare
Vechi 07.12.2007   #1
etrans
32-Bit Member
 
Data înregistrării: 06.02.2007
Mesaje: 131
Rep Power: 6
etrans is on a distinguished road
Implicit tabele relationate unul la mai multe

Acum lucrez si eu la un proiect mai complex si m-am lovit de o problema.
Deci am mai multe tabele relationate unul la mai multe. astfel:

Pe scurt, fiecare user are posibilitatea sa selecteze mai multe orase de interes. De aceea am folosit o tabela auxiliara care face legaturile intre useri si orase.
Fiecare user mai are si posibilitatea sa selecteze mai multe domenii de interes, etc, etc

Users
------
user_id
nume
prenume

Users_Orase:
------------
user_id
oras_id

Users_Domenii
-------------
user_id
domeniu_id

Orase
------
oras_id
oras

Domenii
--------
domeniu_id
domeniu

Ceea ce nu reusesc este cum fac sa selectez doar userii care au ales un anumit oras si un anumit domeniu.
Sper ca ati inteles ce vreau sa spun.
__________________
www.freefun.lx. pr-4
www.jocuribarbie.lx.ro pr-4
www.jocuribarbie.ilive.ro pr-3

Link exchange cu cine are peste 200 unici/zi! id: videocars

Last edited by etrans; 07.12.2007 at 14:57:12.
etrans is offline   Reply With Quote
Sponsored Links
Vechi 08.12.2007   #2
BETng4U
64-Bit member
 
BETng4U's Avatar
 
Data înregistrării: 21.02.2006
Locație: 127.0.0.1 - barlad
Vârsta: 23
Mesaje: 334
Rep Power: 6
BETng4U is on a distinguished road
Trimite un mesaj prin Yahoo pentru BETng4U
Thumbs up

se foloseste operatia JOIN cam in felul urmator


Cod:
SELECT *
 FROM `Users`
  LEFT JOIN `Users_Orase` ON  `Users`.`user_id`=`Users_Orase`.`user_id`
    LEFT JOIN `Orase` ON `Orase`.`oras_id`=`Users_Orase`.`oras_id`
  WHERE
    `Orase`.`oras`='nume_oras_aici'
deci pe pe roamansete:
Cod:
SELECTEAZA TOT
 
 DIN TABELA users

    lipsete la rezultate si coloanele din tabela Users_Orase pentru care coloana user_id din cele doua  co incide
    lipsete la rezultate si coloanele din tabela Orase pentru care coloana oras_id din Orase si Users_Orase  co incide

(selecteaza...) DOAR RANDURILE CARE AU COLANA oras='ceva'
http://www.w3schools.com/sql/sql_join.asp

operatiile JOIN se invata prin experimentare, mie unuia(si am inteles ca la marea majoritate) la inceput mi-au fost "imposibile" JOIN-urile... nu le pricepeam si cu asta basta, dar apoi fara sa observ am inceput sa le folosesc in mod natural. pur si simplu trebuie sa te joci cu diverse interogari sa vezi ce returneaza.. debug and so on...

succes
BETng4U is offline   Reply With Quote
Vechi 08.12.2007   #3
etrans
32-Bit Member
 
Data înregistrării: 06.02.2007
Mesaje: 131
Rep Power: 6
etrans is on a distinguished road
Implicit

da, citisem si eu intr-o carte de sql despre join intre 2 tabele.
Dar cand sunt trei tabele (users, users_orase si users_domenii) e belea mare. In carte nici macar nu am gasit sa se pomeneasca de asa ceva.

Imi popate prezenta cineva cum se face?

BETng4U iti multumesc, o sa citesc si linkul dat de tine.
__________________
www.freefun.lx. pr-4
www.jocuribarbie.lx.ro pr-4
www.jocuribarbie.ilive.ro pr-3

Link exchange cu cine are peste 200 unici/zi! id: videocars
etrans is offline   Reply With Quote
Răspunde


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Moduri de afișare

Reguli de postare
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Pornit
emoticoanele sunt Pornit
Codul [IMG] este Pornit
Codul HTML este Oprit



Ora este GMT +3. Ora este acum 17:27:24.


Rulează cu: vBulletin Version 3.8.4
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Forum SEO by Zoints

XXXXXXXXXXXXXXXXXXX
Inactive Reminders By Icora Web Design