Podstrony
|
telcocafewitamzwracam sie z ogromna prosba do wszystkich uzytkownikow biegle znajacych php. otoz w projekcie malego sklepu internetowego na zaliczenie wymagane jest, abym zaimplementowal jakis system rekomendacji, w pewnej ksiazce o php i mysql zalaczony byl przyklad na ktorrym opieralem sie piszac ten skrypt, caly skrypt wyglada mniej wiecej tak: <? session_start(); if(isset($_SESSION['prawid_uzyt'])) { echo 'Zalogowany jako: '.$_SESSION['prawid_uzyt'].'<br />'; echo "Wartosc Twoich zakupow: ".$_SESSION['calkowita_wartosc']." PLN<br>"; include "inc/naglowek.php"; include "inc/connect.php"; if ($db) { include "inc/baza.php"; $zapytanie = "select id_figurki from rekom where id_klienta in (select distinct(r2.id_klienta) from rekom r1, rekom r2 where r1.id_klienta='2' and r1.id_klienta!=r2.id_klienta) and id_figurki not in (select id_figurki from rekom where id_klienta='2') group by id_figurki having count(id_figurki)>1"; $wynik = mysql_query($zapytanie); $ile = mysql_num_rows($wynik); if (!$wynik) echo "Nie znaleziono zadnych rekomendowanych produktow."; if ($ile==0) echo "Nie znaleziono zadnych rekomendowanych produktow."; $urle = array(); for ($licznik=0; $rzad = $wynik->fetch_object(); $licznik++) { $urle[$licznik] = $rzad->id_figurki; } foreach ($urle as $url) { echo "<table width=300 cellpadding=2 cellspacing=0>"; echo "<tr><td><strong>Rekomendacje</strong></td></tr>"; echo "<tr><td><a href=pozycja.php?id_poz=$url>Pozycja".$url."</a></td></tr>" ; } }else echo "Brak polaczenia z baza"; } ?> Idea tego przykladu jest to, ze, aby poprawnie on dzialal w bazie musi zostac utworzona tabela "Rekom" z dwiema kolumnami, jedna to: id_klienta (ktora jest rowniez kluczem w tabeli Klienci) oraz id_figurki(ktora jest kluczem w tabeli Figurki). Zadaniem tej tabeli jest gromadzenie informacji na temat klientow i zakupionych przez nich produktow. Nastepnie w zapytaniu nastepuje wybranie tylko tych produktow z danym ID, ktore zostaly zakupione przez danego klienta, a zarazem tez zostaly wybrane przez innych klientow tego sklepu, co nastepnie powoduje ze danemu klientowi sa proponowane produkty, ktore zostaly zakupione przez innych klientow o podobnych zainteresowaniach co dany klient. (Nie wiem czy czasem troche nie zamotalem ;) ) A jaki jest problem tego, otoz po uruchomieniu tego skryptu w przegladarce wyswietlany jest taki blad: Fatal error: Call to a member function on a non-object in K:\szablon\site\rekomendacja.php on line 35, a line35 w skypcie oznacza ten wiersz: for ($licznik=0; $rzad = $wynik->fetch_object(); $licznik++) Zatem bardzo prosze o pomoc, bo nie wiem za bardzo jak sobie z tym poradzic. :( "Call to a member function on a non-object Je¶li spróbujesz wywołać metodę jakie¶ klasy, która nie została przedtem zdeklarowana w ów klasie, to ujrzysz tytułowy komunikat. Należy, zatem pamiętać, z jakiej funkcji korzystamy, a jaka została zdeklarowana. Często problem ten wynika z jaki¶ drobnych błędów w pisowni, np. literówek. Podobnie jak w poprzednich wypadkach, w parametrze błędy podawane jest położenie wywołanej metody. SprawdĽ to i usuń nieprawidłowo¶ć." Cytat ze strony : http://www.webinside...hp/artykuly/221 przejrzyj dokładnie swój skrypt czy masz zadeklarowan± klasę wynik ;) i czy jest ona prawidłowo zadeklarowana :D hmm, czyli idac dalej za ta wskazowka, bledu nie bedzie w wierszu na ktory wskazuje przegladarka, ale w zmiennej $zapytanie, bo jesli ona nie zostala utworzona przez poprawne zapytanie sql to nie utworzy sie zmienna $wynik, a co za tym idzie petla sie nie wykona i wyskoczy owy blad, dobrze rozumuje ? imo, dobrze, najlepiej to zassaj sobie mysql query browser z www.mysql.com -> downloads. Zasinstaluj i zobacz co ci zwraca to zapytanie wyskakuje taki komunikat You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select distinct(r2.id_klienta), ale niestety do takiego poziomu wiedzy z sql jeszcze nie doszedlem, szukalem w dokumantacji, ale jak narazie nic, zna sie ktos dobrze na sql ? |
|||
Sitedesign by AltusUmbrae. |