![]() |
![]() |
-LUCU- |
![]()
Post
#1
|
Goście ![]() |
Witam!
PHP/mySQL działa tylko i wyłącznie lokalnie więc nie ma mowy o cookies i ip. Mam problem ze skryptem, który będzie pozwalał tylko raz głosować zalogowanemu użytkownikowi. Do rzeczy - 3 tabele : Users, Utwory, Głosy W tabeli Głosy mamy pola: id_oceny id_utworu id_usera ocena W jaki sposób sprawdzić czy user głosował już wcześniej na utwór? Teoretycznie to proste bo wystarczy wysłać zapytanie czy id_usera oraz id_utworu znajduje się w tabeli Głosy ale słaby jestem i nie wiem w jaki sposób napisać kod, z góry dzięki za pomoc! |
|
|
![]() |
-LUCU- |
![]()
Post
#2
|
Goście ![]() |
Dzięki za pomoc (IMG:style_emoticons/default/smile.gif) Jest jeden motyw , który mi spokoju nie daje - mimo tego , że tabela 'głosy' jest pusta zawsze jest echo 'juz glosowales'
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
mimo tego , że tabela 'głosy' jest pusta zawsze jest echo 'juz glosowales'
Zobacz w manualu, jaki rezultat zwraca funkcja mysql_query: "For SELECT [...] mysql_query() returns a resource on success, or FALSE on error." - zwraca zasób. Porównywanie do integera zawsze zwróci fałsz. Zanim zaczniesz porównywać, musisz ten zasób obrobić, na przykład funkcją mysql_fetch_assoc:
Proponowałbym nieco prostszą metodę sprawdzenia w bazie, czy user głosował, bez COUNT - wtedy wynik zapytania zwróci 0 albo więcej wierszy i sprawdzenie sprowadzi się do policzenia ilości wierszy funkcją mysql_num_rows:
No i na koniec najważniejsze. Widzisz te czerwone ramki w opisach każdej funkcji mysql_ w manualu? "Sugerowane alternatywy Nie zaleca się stosowania tego rozszerzenia [mysql]. W zamian powinno używać się rozszerzenia MySQLi lub PDO_MySQL" To nie jest czyjaś subiektywna opinia. To jest zalecenie twórców PHP. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 03:21 |