Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] Wyciaganie danych z kilku tabel - relacje
pavlaq
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 9.08.2007
Skąd: Kraków

Ostrzeżenie: (10%)
X----


Witam mam taki problem

Posiadam baze danych o takiej strukturze

KLIENCI

id | nazwa

PODWYKONAWCY

id | nazwa

a tabela ladunki wyglada tak

id | id_k | id_p | numer | rej (czyli numer rejestracyjny)

i chce zebym pozniej wyswietlil na stronie

numer | nazwa (klienta) | nazwa (podwykonawcy)


z jednej tabeli nie ma problemu umiem napisac dobrze selecta itd

Tylko nie wiem jak opisac te relacje w sql polaczonym z php. Przeczytalem troche ale jestem chyba zbyt glupi zeby zrozumiec tego mysql. Wiem ze napewno bede wyswietlal wszystko petla while itd prosze jesli ktos moze napisac mi kawalek dzialajacego kodu bylbym wdzieczny
Go to the top of the page
+Quote Post
sticker
post
Post #2





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


  1. SELECT ladunki.numer, KLIENCI.nazwa, PODWYKONAWCY.nazwa FROM ladunki JOIN KLIENCI ON KLIENCI.id = ladunki .id_k
  2. JOIN PODWYKONAWCY ON PODWYKONAWCY.id = ladunki.id_p
  3. WHERE ...
Go to the top of the page
+Quote Post
nowotny
post
Post #3





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

Ostrzeżenie: (0%)
-----


Coś takiego to chyba będzie:
  1. SELECT `ladunki`.numer,`klienci`.nazwa AS nazwa_kli,`podwykonawcy`.nazwa AS nazwa_podw FROM `ladunki`,`klienci`,`podwykonawcy` WHERE `ladunki`.id_k=`klienci`.id AND `ladunki`.id_p=`podwykonawcy`.id
Go to the top of the page
+Quote Post
pavlaq
post
Post #4





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 9.08.2007
Skąd: Kraków

Ostrzeżenie: (10%)
X----


jak ja mam to wypisac w php nie ukrywam jestem noobem i probuje za pomoca fetch_array ale chyb zle trafilem prosze was o ten kawalek z zapytaniem i wypisaniem w petli ;/
Go to the top of the page
+Quote Post
nowotny
post
Post #5





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

Ostrzeżenie: (0%)
-----


Cytat(pavlaq @ 11.02.2008, 08:34:58 ) *
jak ja mam to wypisac w php nie ukrywam jestem noobem i probuje za pomoca fetch_array ale chyb zle trafilem prosze was o ten kawalek z zapytaniem i wypisaniem w petli ;/

http://pl.wikibooks.org/wiki/PHP/Jak_to_się_robiło_kiedyś%3F
Go to the top of the page
+Quote Post
TomaySOFT
post
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 1
Dołączył: 18.06.2002
Skąd: poznań

Ostrzeżenie: (0%)
-----


Ok - to skoro potrzebujesz bardzo jawnej podpowiedzi, jak PHP sprząc z MySQL to napiszę Ci tak:
  1. <?
  2. $mysqli=new mysqli('$host', '$username', '$userpass', '$defaul_db'); //nawiązanie połączenia z bazą
  3. $wyn = $mysqli->query("set names latin2"); //jeśli taką masz stronę kodową tabel w MySQL - ew. do korekty
  4. $sql= "select pole1, pole2, pole3 from nazwa_tabeli where warunek1=true order by k
    ierunek"
    ; //etc. - dokładny SQL zależy od tego, co chcesz uzyskać...
  5. $wynik = $mysqli->query($sql); //Tu fizycznie stworzony SQL trafia do bazy jako zapytanie
  6. while ($wiersz=$wynik->fetch_assoc()) //dopóki uda się przetworzyć zbiór wyników - czyli powtarzaj, aż skończą się zwracane rekordy, albo wcale, gdy nic nie zosta
    nie zwrócone
  7. {
  8.  $pole1 = $wiersz['pole1']; //z rekordu zwróconego odczytujemy wartość pola z tabeli asocjacyjnej
  9.  $pole2 = $wiersz['pole2'];
  10.  $pole3 = $wiersz['pole3'];
  11. //mamy teraz w lokalnych zmiennych PHP trzymane wartości poszczególnych pól z zapy
    tania
  12. //możemy je zatem wyświetlić, czy... inaczej zoperować... - up to you
  13. }
  14. ?>

Czy to choć trochę pomogło?
Tak gwoli informacji:
To jest tzw. metoda obiektowa, niektórzy wolą trzymać się tzw. metody proceduralnej, ale w dobie PHP 5 i MySQL 5 to wydaje się być nieco przestarzałe, choć sam język nadal to wspiera....

Pozdro
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 15:26