Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Wyciaganie danych z kilku tabel - relacje
Forum PHP.pl > Forum > Bazy danych
pavlaq
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
sticker
  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 ...
nowotny
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
pavlaq
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 ;/
nowotny
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
TomaySOFT
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.