Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nieznana kolumna 'p.products_id' - a istnieje i znana :/, Problem z niezrozumiałym błedem w sql
putrycydes
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 12.04.2007

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


hej mam prośbę, próbuję wyjarzyć czemu niby to zapytanie nie jest ok, tym bardziej że na jednej bazie działa a na nowszej już nie (?) ale to mnie przerasta
  1. SELECT p.products_fsk18, p.products_shippingtime, p.products_model, p.products_ean, pd.products_name, m.manufacturers_name, p.products_quantity, p.products_image, p.products_weight, pd.products_short_description, pd.products_description, p.products_id, p.manufacturers_id, p.products_price, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_discount_allowed, p.products_tax_class_id FROM products_description pd, products p LEFT JOIN manufacturers m ON p.manufacturers_id = m.manufacturers_id, products_to_categories p2c LEFT JOIN specials s ON p.products_id = s.products_id WHERE p.products_status = '1' AND p.products_id = p2c.products_id AND pd.products_id = p2c.products_id AND pd.language_id = '3' AND p2c.categories_id = '5' ORDER BY p.products_price ASC

baza twierdzi:
1054 - Nieznana kolumna 'p.products_id' w on clause
oczywiście p.products_id (czyli products.products_id istnieje ) qwa!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
kurt
post
Post #2





Grupa: Zarejestrowani
Postów: 89
Pomógł: 3
Dołączył: 14.07.2005
Skąd: Warszawa

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


Mam to samo. Jak mniemam kolega też ćwiczy oscommerce (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Polecam artykulik : http://www.oscommerce.com/about/news,121
podobno problem występuje dla wersji mysql >=5.0.12

Po naszemu rozwiązanie problemu jest tutaj : http://www.oscommerce.pl/viewtopic.php?t=1...t=p.products_id

Ten post edytował kurt 16.03.2008, 22:19:28
Go to the top of the page
+Quote Post
nevt
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


jak jest błąd w składni, to i go wywala... wystarczy dodać nawiasy i wszystko będzie śmigać:
p2c.products_id
  1. SELECT p.products_fsk18, p.products_shippingtime, p.products_model, p.products_ean, pd.products_name, m.manufacturers_name, p.products_quantity, p.products_image, p.products_weight, pd.products_short_description, pd.products_description, p.products_id, p.manufacturers_id, p.products_price, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_discount_allowed, p.products_tax_class_id FROM (products_description pd, products p LEFT JOIN manufacturers m ON p.manufacturers_id = m.manufacturers_id, products_to_categories p2c) LEFT JOIN specials s ON p.products_id = s.products_id WHERE p.products_status = '1' AND p.products_id = p2c.products_id AND pd.products_id = p2c.products_id AND pd.language_id = '3' AND p2c.categories_id = '5' ORDER BY p.products_price ASC;
kiedy nie ma nawiasów, to wyraźnie widać, że LEFT JOIN specials w wyrażeniu:

... FROM products_description pd, products p LEFT JOIN manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c LEFT JOIN specials s ON p.products_id = s.products_id WHERE ...

odnosi się do tabelki product_to_categories p2c gdzie, zgodnie z treścią komunikatu o błędzie nie ma pola p.products_id.

powodzenia.

Ten post edytował nevt 16.03.2008, 23:18:42
Go to the top of the page
+Quote Post
kurt
post
Post #4





Grupa: Zarejestrowani
Postów: 89
Pomógł: 3
Dołączył: 14.07.2005
Skąd: Warszawa

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


Nevt, ten błąd składni dotyczy mysql >=5.0.12, we wcześniejszych wersjach wszystko chodziło ok. Dodanie nawiasów niczego nie załatwia, onieczne jest przebudowanie całego zapytania. Pole products_id występuje w tabeli products_to_categories.
Go to the top of the page
+Quote Post
nevt
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


kurt, niewłaściwie interpretujesz zmiany wprowadzone w MySQL. Przedstawiony na początku zapis jest ewidentnie błędny z punktu widzenia składni języka, ale błąd w MySQL ver. < 5.0.12 dopuszczał taką nieprawidłową składnię (tak jak firefox grzecznie sam domyka nie domknięte tagi w html - zupełnie niepotrzebnie zresztą... ). Ale programiści MySQL połapali się i od wersji 5.0.12 w górę usunięto błąd dopuszczający wadliwą składnię. Co do wypowiedzi na temat działania nawiasów - sprawdź zanim skomentujesz. Proponowane przeze mnie rozwiązanie działa, i oprócz dodania tych nawiasów nic więcej nie trzeba modyfikować w tym zapytaniu. Czytałem artykuł który podałeś - tam faktycznie kompletnie przebudowali to zapytanie, ale to wcale nie oznacza, że nie istnieją inne rozwiązania tego problemu.

najlepiej, żeby wypowiedział się autor tematu... pozdrawiam.

Ten post edytował nevt 17.03.2008, 22:52:50
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: 16.09.2025 - 17:45