Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Połączenie 3 tabel
wężyk
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.03.2005

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


Witajcie mam mały problem z zapytaniem do bazy danych a dokładniej chodzi mi oto, że chce z trzech tabel wybrac odpowiednie rekordy w jednym zapytaniu
Napisałem takie zapytanie:
  1. SELECT id_zamowienia.produkty_zamowienia,ilosc.produkty_zamowienia,
  2. cena_produktu.produkty_zamowienia,idtowaru.produkty_zamowienia,
  3. idtowaru.towary,nazwa.towary,cena.towary,nazwa_uz.zamowienia, wartosc.zamowienia,DATA.zamowienia,stan_zam.zamowienia,
  4. dos_imie.zamowienia,dos_nazwisko.zamowienia,dos_adres.zamowienia,
  5. dos_miasto.zamowienia,dos_telefon.zamowienia,
  6. dos_wojewodztwo.zamowienia,
  7. dos_kod_pocztowy.zamowienia,
  8. forma_dostawy.zamowienia,ilosc_towarow.zamowienia
  9. FROM produkty_zamowienia,zamowienia,towary WHERE produkty_zamowienia.idzamowienia=zamowienia.idzamowienia AND towary.idtowaru=produkty_zamowienia.idtowaru LIKE '%$idzamowienia%'

ale w wyniku dostaje komunikat błendu(mysql_error()) Query was empty niebardzo wiem czy to zapytanie jes poprawnie zformułowane.
Za pomoc dziękuje. (IMG:http://forum.php.pl/style_emoticons/default/ohmy.gif)

Ten post edytował wężyk 5.05.2005, 12:20:03
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
SELECT id_zamowienia.produkty_zamowienia,ilosc.produkty_zamowienia,....
Już tutaj ci się powaliło. Najpierw jest nazwa tabeli a potem nazwa kolumny, czyli np: produkty_zamowienia.id_zamowienia
Go to the top of the page
+Quote Post
wężyk
post
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.03.2005

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


zmieniłem ale niestety nic nie pomogło nadal jest Query was empty
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A możesz to pokazać po zmianach? POkaż jako kawałek Twojego kodu php, bo widzę że tam zmiennej używasz.
Go to the top of the page
+Quote Post
wężyk
post
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.03.2005

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


Ok zaden problem
  1. <?php
  2.  
  3. if(!lacz_bd())echo('Nie mozna połączyć sie z bazą danych mysql');
  4. $zapytanie=&#092;"SELECT produkty_zamowienia.id_zamowienia
  5. ,produkty_zamowienia.ilosc,
  6. produkty_zamowienia.cena_produktu,produkty_zamowienia.idtowaru,
  7. towary.idtowaru,towary.nazwa,towary.cena,zamowienia.nazwa_uz,
  8. zamowienia.wartosc,zamowienia.data,zamowienia.stan_zam,
  9. zamowienia.dos_imie,zamowienia.dos_nazwisko,zamowienia.dos_adres,
  10. zamowienia.dos_miasto,zamowienia.dos_telefon,
  11. zamowienia.dos_wojewodztwo,
  12. zamowienia.dos_kod_pocztowy,zamowienia.forma_dostawy,
  13. zamowienia.ilosc_towarow FROM produkty_zamowienia,zamowienia,towary WHERE produkty_zamowienia.idzamowienia=zamowienia.idzamowienia 
  14. and
  15.  towary.idtowaru=produkty_zamowienia.idtowaru LIKE '%$idzamowienia%'&#092;";
  16.  
  17. $wynik=mysql_query($zampytanie);
  18.  
  19. if(!$wynik) printf(&#092;"Nie mozna wykonac zapytania:\" %s, mysql_error());
  20.  
  21. while($row=mysql_fetch_array($wynik))
  22. {
  23.     //tu kod do wyswietlenia rekordow
  24. }
  25.  
  26. ?>


Ten post edytował wężyk 5.05.2005, 12:53:12
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ostatnia linijka zapytania:
towary.idtowaru=produkty_zamowienia.idtowaru LIKE '%$idzamowienia%'";
Te LIKE to czego ma sięodnosić? musisz określić kolumnę dla like, bo tutaj jej nie określasz
Go to the top of the page
+Quote Post
wężyk
post
Post #7





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.03.2005

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


$idzamowienia wysyłam z pliku wczesniejszego
  1. <?php
  2.  
  3. echo&#092;"<a href=faktora.php?idzamowienia=\".$idzamoweinia.\">$idzamowienia.\"</a>\"
  4.  
  5. ?>

I chce zyby zapomoca tego zapytania wyswietlic wszystkie wybrane rekordy ale
  1. LIKE '%idzamowienia%'

musi sie rownac temu ide ktore było wczesniej przesłane
Sory jest mi to troche trudno wytulmaczyc szkoda ze niemoge tego pokazac było by łatwiej
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie zrozumiales mnie. Chodzi mi oto, że ty nie określasz kolumny, której like ma dotyczyć.
Przyklad: ...where kolumna like '%costam%'
A u ciebie jest: ...where like '%costam%'
Widzisz różnicę? Brakuje ci nazwy kolumny przed like. U ciebie przed like jest warunek: .... towary.idtowaru=produkty_zamowienia.idtowaru
a powinno być:
....towary.idtowaru=produkty_zamowienia.idtowaru and jakaskolumna LIKE '%$idzamowienia%'

Ten post edytował nospor 5.05.2005, 13:50:39
Go to the top of the page
+Quote Post
wężyk
post
Post #9





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.03.2005

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


czyli teraz to zapytanie powinno wygladac mniejwiecej tak?
  1. <?php
  2.  
  3. $zapytanie=&#092;"SELECT produkty_zamowienia.id_zamowienia,produkty_zamowienia.ilosc,
  4. produkty_zamowienia.cena_produktu,produkty_zamowienia.idtowaru,
  5. towary.idtowaru,towary.nazwa,
  6. towary.cena,zamowienia.nazwa_uz,
  7. zamowienia.wartosc,zamowienia.data,
  8. zamowienia.stan_zam,zamowienia.dos_imie,zamowienia.dos_nazwisko,
  9. zamowienia.dos_adres,zamowienia.dos_miasto,zamowienia.dos_telefon,
  10. zamowienia.dos_wojewodztwo,zamowienia.dos_kod_pocztowy,
  11. zamowienia.forma_dostawy,zamowienia.ilosc_towarow FROM produkty_zamowienia,zamowienia,towary WHERE produkty_zamowienia.idzamowienia=zamowienia.idzamowienia and towary.idtowaru=produkty_zamowienia.idtowaru and 
  12. zamowienia.idzamowienia LIKE '%$idzamowienia%'&#092;";
  13.  
  14. ?>


Ten post edytował wężyk 5.05.2005, 14:07:03
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tak
Go to the top of the page
+Quote Post
wężyk
post
Post #11





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.03.2005

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


Ale nadal nie działa cały czas ten sam bład ale zapytanie jest raczej w pozadku dlatego ze gdy wykonałem je w phpMyAdmin nie dostałem błedu zapytanie sie wykonało
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Spójrz na te linijki:
  1. <?php
  2.  
  3. $zapytanie=&#092;"....\";
  4. $wynik=mysql_query($zampytanie);
  5.  
  6. ?>

Widzisz błąd? Zapytanie walisz do zmiennej $zapytanie, a do mysql_query walisz zmienną $zampytanie. To duża różnica (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Za 5 minut spadam domciu, więc do jutra
Go to the top of the page
+Quote Post
wężyk
post
Post #13





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.03.2005

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


Dzieki ci jak niewiem co bez ciebie niedał bym rady pozdrowionka i jeszcdze raz dziekuje
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 - 17:23