Czy zapytania wysłane do bazy poprzez funkcję mysql_query(); rządzi się jakimiś innymi prawami, niż wpisane "z ręki" (poprzez phpMyAdmina)?
Czytałem to: http://pl2.php.net/manual/pl/function.mysql-query.php i nie znalazłem nic na ten temat, tymczasem praktyka mówi mi coś innego....
EDIT: Problem się nieco przekształcił - przejdź do następnego posta
Jest sobie skrypt php (dłuuugi, nie będę go tu przytaczał), który w zmiennej $zapytanie dosyć złożone zapytanie SQL.
Następnie, tak jak zwykle, łączę się z bazą (mysql_connect - funkcja zwraca mi resource ID, więc połączyłem się poprawnie). Wybieram bazę (mysql_select_db).
Wywołuję
$wynik=mysql_query($zapytanie);
i zaraz potem
mysql_fetch_array($wynik);
Później próbuję to wyświetlić, ale to nieistotne.
Przy próbie uruchomienia tego skryptu dostaję komunikat:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in pokaz_hotel.php on line 29
w linijce 29 oczywiście jest funkcja mysql_fetch_array().
Najprostszy wniosek jest taki, że zapytanie zostało źle skonstruowane, aby to więc sprawdzić wywołuję przed mysql_query:
echo("$zapytanie");
Wynik:
SELECT klasa.id_klasy, klasa.cena, klasa.ilosc_lozek, klasa.telewizor, klasa.telefon, klasa.internet, klasa.lazienka, klasa.barek, COUNT(pokoj.id_klasy) AS ilość_pokoi FROM hotel, pokoj, klasa WHERE (pokoj.id_klasy=klasa.id_klasy) AND (hotel.id_hotelu=2) GROUP BY pokoj.id_klasy
Wywołanie tego samego w phpMyAdmin nie powoduje błędu, a elegancko zwraca w efekcie 3 wiersze - czyli zapytanie jest poprawne...
Strasznie Was proszę o pomoc, bo od 2 godzin się gapię na ten kod i nie wiem, o co chodzi... Gdzie może być błąd? Zaznaczam, że nie jest to pierwszy skrypt z połączeniem z bazą danych - w drugim pliku dokładnie to samo (tylko z innym, prostszym zapytaniem) działa bez problemu...
EDIT: Aha, jeżeli to istotne - to jako serwer używam najnowszego Krasnala...