Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]jak pobrać dane z tabeli przy pomocy innych danych z drugiej tabeli
Forum PHP.pl > Forum > Przedszkole
-yoga-
Witam.
Bez zawracania głowy przechodzę do konkretów.

Mam 2 tabele zam_item oraz zam_klient
W tabeli item mam zapisane m.in informacje o szerokości, wysokości, ilości szt., kolor oraz id klienta
W tabeli zam_klient mam informacje o kliencie oraz statusie zamówienia.

A teraz to co chcę osiagnąć:
Chcę wyciągnąć szerokość + wysokość * ilość szt z tabeli zam_item dla wszystkich klientów których status zamówienia równy jest 0 w tabeli zam_klient

Przeważnie jest kilka kilka wierszów w zam_item przypisanych do tego samego klienta.

Naprawdę nie wiem jak to ugryźć.

POMOCY
greycoffey
Mam nadzieję, że pomogłem.
CTRL
  1. $q = mysql_query("SELECT * FROM zam_klient WHERE status=0 ");
  2. while($a = mysql_fetch_array($q))
  3. {
  4. $q2 = mysql_query("SELECT * FROM zam_item WHERE id_klient=".$a['klient_id']);
  5. $a2 = mysql_fetch_array($q2));
  6. echo($a2['szerokosc']);
  7. }

Mam nadzieję że nic nie powaliłem i że dobrze zrozumiałem.
Pobierasz z zam_klient zgłoszenia ze statusem 0, a następnie w pętli while pobierasz szerokość itp. z zam_item idąc bo id klienta z pętli

@up: jak ktoś w sql dobry nie jest to można to rozwiązać przez php smile.gif
-yoga-
Dzięki CTRL za zinteresowanie i nie odsyłanie do googli (gdybym wiedział czego szukać to bym wam głowy nie zawracał)

Wsumie wcześniej napisałem coś takiego:
  1. function zapotrzebowanie() {
  2.  
  3. $sql=mysql_query("SELECT * FROM zam_klient WHERE status=0");
  4. while ($odp=mysql_fetch_array($sql)) {
  5.  
  6. $sql_biale=mysql_query("SELECT * FROM zam_item WHERE kolor='BIA' AND id_klienta=".$odp['id']."");
  7. $odp_biale=mysql_fetch_array($sql_biale);
  8. $SB=$odp_biale['szer'];
  9. $WB=$odp_biale['wys'];
  10. $SZB=$odp_biale['szt'];
  11. $suma_biale= ($SB + $WB) * 2 * $SZB * 0.001;
  12. echo 'Kolor biały: <strong>'.$suma_biale.' m<br /><br />';
  13. }
  14. }


Ale coś mi tu nie zabardzo działa ponieważ zwraca jakieś dziwne liczby.
Chciałbym na końcu zsumować wszystkie wyniki dla danego koloru.
CTRL
Nie wiem dokładnie jak to ma wyglądać bo nie powiedziałeś nam co to ma być, ale jeśli chcesz sumować popróbuj z SUM, tym razem już muszę odesłać: http://www.sql-tutorial.net/SQL-SUM.asp
-yoga-
Ogólnie to napisałem sobie skrypt do wprowadzania zleceń na robienie moskitier. Teraz na podstawie wprowadzonych wymiarów moskitier chciałbym szybko obliczyc ile bedę musiał zamówić materiału w postaci profili aluminiowych.
Napisałem takie coś:
  1. function zapotrzebowanie() {
  2.  
  3. $q = mysql_query("SELECT * FROM zam_klient WHERE status=0 "); //Pobieranie informacji o klientach ze zleceniami do realizacji
  4. while($a = mysql_fetch_array($q)) //pętla wyciagająca zamówione przez klienta moskitiery
  5. {
  6. $q2 = mysql_query("SELECT sum(szer), sum(wys) FROM zam_item WHERE id_klienta=".$a['id']." AND kolor='BIA'"); //wyciągamy sumę szerokości i wysokości dla danego klienta i danego koloru
  7. /* $q3 = mysql_query("SELECT szt FROM zam_item WHERE id_klienta=".$a['id']." AND kolor='BIA'"); */
  8. while ($a2 = mysql_fetch_array($q2)) { //pętla przetwarzająca wszystkie zlecenia dla danego klienta
  9. $w_biale=$a2['sum(szer)'] * 0.001; //suma wszystkich szerokości w zleceniu i zmiana na m
  10. $h_biale=$a2['sum(wys)'] * 0.001; //suma wszystkich wysokości w zleceniu i zmiana na m
  11. /* $sztuk_biale=$a2['szt']; */
  12.  
  13. $suma_w_zleceniu=($w_biale + $h_biale) * 2; //obliczamy obwód moskitiery a co za tym idzie długość potrzebnego profila
  14.  
  15. echo $suma_w_zleceniu; //wyświetlanie ilości profila dla danego zlecenia
  16. echo '<br />';
  17. }
  18. }
  19.  
  20. echo '<a href="zamowienie.php?action=old">Wróć do spisu zamówień</a>';
  21. }


Ogólnie to mam to rozwiazane tak że jest sobie klient który zamówił sobie łącznie 10moskitier w tym 3 są takie same czyli mam razem 8 pozycji w zamówieniu. Problem w zbiorczym zestawieniu pojawia się właśnie z tymi 3 sztukami w 8 pozycji, ponieważ stosując SUM nie mnoży mi przez ilość sztuk w danej pozycji zamówienia.
Nie wiem również jak zmusić skrypt do zliczenia wszystkich zleceń od klientów w jedną wartość.
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.