![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 12.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ot kod który ma działać (a powinien przynajmniej w zamyśle) następująco: losują się 2 zdjęcia, klikam na jakieś zdjęcie przez co dodaje wartość=1 do odpowiednich danych w bazie, a następnie losuje kolejne 2, itak w kólko.
Podany kod tak raczej nie działa, z sesjami bawię się od dziś więc jakby ktoś dojrzał jakieś błędy niech je napisze.
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 548 Pomógł: 105 Dołączył: 4.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem jaki masz błąd bo nie napisałeś ale
daje się na samym początku pliku |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 12.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem, że session_start(); ma być przed require('conn.php');. Poprawiony kod wygląda następująco:
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 548 Pomógł: 105 Dołączył: 4.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
działa
![]() a jak nie to jakie błędy?? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 12.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Niestety, ciągle wyskakiwał błąd:
Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\PIOTR\glosowaniem.php Więc pousuwałem przy zmiennych $_SESSION znaki (""), a następnie znowu wyskoczył błąd: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\PIOTR\glosowaniem.php on line 30 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 548 Pomógł: 105 Dołączył: 4.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 12.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
W końcu nie wywala błędów. Tylko, że dalej jest pewnie problem. W zamyśle po kliknięciu na jedno ze zdjęć dodaje 1 punkt do odpowiedniego pola bazie (wygrana lub przegrana). Niestety, nic nie dodaje. Czy błędem jest to, że aktualnie pole wygrana bądź przegrana nie mają żadnej wartości?
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 548 Pomógł: 105 Dołączył: 4.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
pokaż kod po wszystkich poprawkach
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 12.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 548 Pomógł: 105 Dołączył: 4.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
myślę że jak losujesz z bazy jeden rekord to pętle while nie są ci potrzebne w warunkach zapytania masz .$wiersz['sciezka']. a to chyba będzie dostępne tylko wewnątrz pętli a i jeszcze jedno nie wiem skąd skrypt ma wiedzieć kiedy został wciśnięty przycisk.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 12.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie nad tym głowie się już trochę. Może pomoże Ci to, co nospor napisał:
Przedewszystkim, to w sesji musisz zapisać wylosowane rekordy. Przecież jak user kliknie w obrazek, to ty po przeładowaniu strony znowu losujesz i wylosowane rekordy są już inne niż z paczki dwóch co koleś klikał. Po kliknieciu sprawdzasz w sesji, czy dany klik jest i jak jest to juz wszystko masz co chciałeś. Jednemu dajesz wygrana a drugiem przegrana |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
1. Identyfikator użytkownika, którego zdjęcie zostało kliknięte musisz przekazać w adresie url:
2. Do wylosowania dwóch unikalnych użytkowników posłuż się zapytaniem:
Pamiętaj jednak, że przy dużej liczbie rekordów w bazie danych tego rodzaju zapytania są bardzo wolne. 3. W sesji zapisujesz identyfikator wyniku zapytania, a powinieneś raczej zapisać po prostu odpowiedni wiersz z bazy danych
4. Teraz po kliknięciu na któreś ze zdjęć w tablicy $_GET['id'] powinieneś mieć identyfikator użytkownika, którego zdjęcie zostało kliknięte. Porównujesz ten identyfikator z danymi zapisanymi w sesji (a dokładniej w $_SESSION['wylosowani_uzytkownicy']) i wykonujesz odpowiednie UPDATE-y. 5. W zapytaniach UPDATE powinieneś się posługiwać raczej identyfikatorami (id), które są przechowywane w sesji, aniżeli ścieżką do zdjęcia/obrazka, jak to robisz teraz. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 548 Pomógł: 105 Dołączył: 4.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Porównujesz ten identyfikator z danymi zapisanymi w sesji (a dokładniej w $_SESSION['wylosowani_uzytkownicy']) i wykonujesz odpowiednie UPDATE-y. hmmm nie wiem czy to będzie działało bo po kliknięciu na link zostaną wylosowane nowe rekordy i przypisane do sessi a w get będzie wynik wcześniejszego losowania więc ten warunek nie będzie spełniony |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
hmmm nie wiem czy to będzie działało bo po kliknięciu na link zostaną wylosowane nowe rekordy i przypisane do sessi a w get będzie wynik wcześniejszego losowania więc ten warunek nie będzie spełniony Przecież można najpierw porównać $_GET['id'] z zawartością sesji, a dopiero później wylosować nowe wartości, a można nawet i ich nie losować. Punkty nie oznaczały kolejności działań. Ten post edytował mortus 5.11.2011, 15:06:21 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 12.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
A więc oto mój aktualny kod. Niestety, w dalszym ciągu nie dodaje punktów w bazie
Zaktualizowałem kod Ten post edytował ebate 5.11.2011, 18:08:10 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 548 Pomógł: 105 Dołączył: 4.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
zobacz to tylko jest z tym jeden problem po kliknięciu odświeżenia strony zaktualizuje znów ten rekord |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 12.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Powiem Ci że.... DZIAŁA!
Wszystko jest ok,tylko, jak wspomniałeś, Po kliknięciu rozdaje odpowiednio po punkcie i losuje inne zdjecia (jak powinno być), zaś przy ręcznym odświeżaniu dodaje punkty poprzednim zdjęciom, które dostało ostatnio punkty i losuje nowe, więc prawie wszystko jest OK! I dzięki wszystkim za dotychczasowe poświęcenie mi waszego czasu. Kurcze, nie rozumiem dlaczego tak się dzieje. Przecież przy odświeżaniu zaczyna się nowa sesja, więc nie powinno nic dodawać. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 10:17 |