![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Interesuje mnie czy jest możliwość aby wyciągnąć losowy rekord z bazy ale aby po odświeżeniu strony ciągle był ten sam? Myślałem aby wylosować a następnie dodać do bazy i z powrotem wyciągnąć . Na razie mam takie zapytanie które wyciąga losowy rekord:
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 89 Pomógł: 12 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jak dasz do bazy to wtedy jak znów wejdziesz na stronę to będzie ten sam i na różnych komputerach też będzie ten sam. Możesz dodać do sesji, albo cookies.
Ten post edytował lessi 23.10.2010, 12:35:16 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Właściwie o tym nie pomyślałem.
A była by możliwość wybrać losowy rekord a następnie przy pomocy sesji dodać go do osobnej tabeli? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 89 Pomógł: 12 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
A właściwie po co ci to potrzebne? Bo nie wiem do końca co chcesz zrobić. Po co chcesz dodawać to znowu do bazy danych.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Chciałem aby wylosowało jeden rekord i ten wylosowany widniał na stronie.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 89 Pomógł: 12 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
No więc jeżeli chcesz aby ten rekord był cały czas przy odświeżeniu strony daj:
Powinno działać, jeżeli się gdzieś nie pomyliłem. Ten post edytował lessi 23.10.2010, 13:00:28 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
A czy jest możliwość aby każdy zobaczył ten sam wynik? Ponieważ mam to wrzucone w kod js i to odlicza czas po zakończeniu wykonuje się zapytanie.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 89 Pomógł: 12 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
to musisz to dodać do bazy danych lub do pliku
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Jeśli chodzi Ci o taki skrypt, który losowałby 1 rekord dla jednego id sesji (tak by 1 osoba widziała tylko jeden rekord) i aby po wciśnięciu F5 nie został wylosowany kolejny to chyba mogę Ci pomóc.
Kiedyś się z tym bawiłem i wyszło mi coś takiego:
Nie gwarantuję, że jest on w 100% poprawny. Właściwie to nie jest, ale sądzę, że może być dobrą podporą (IMG:style_emoticons/default/smile.gif) Siedziałem nad nim tydzień, aż zrezygnowałem, bo losowanie kodów (rekordów) nie było w 100% bezpieczne. Zdarzały się przypadki kiedy użytkownik mógł wygenerować sobie 2 kody bez ponownego przejścia przez krok "płatności". Pozdrawiam. P.S. W razie czego pisz. Pomogę go udoskonalić (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
A nie ma prostszego sposobu na wyciągnięcie oraz utrzymanie tego pierwszego wylosowanego rekordu?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Jak widzisz mój skrypt zawiera także polecenie UPDATE, które w twoim wypadku będzie chyba niezbędne...
System ten opierał się na tym, że po wygenerowaniu kodu przypisywał rekordowi wartość "session_id()", tak by użytkownik otrzymywał ciągle ten sam kod. Opiszę to inaczej... $query1 wyciągał z bazy ten rekord, który ma id sesji == session_id() użytkownika. Jeśli nie było -> patrz $query2 $query2 jeśli w bazie nie było rekordu, który miałby przydzielony taki sam session_id() jak id sesji użytkownika to szukał takiego, który ma = 0 i przydzielał mu session_id() == użytkownika. Po co? Patrz $query3 $query3 wyciągał z bazy ten rekord, który ma id sesji == session_id() użytkownika (po to by F5 nie było rozwiązaniem na uzyskanie nowego kodu). Ważna jest kolejność wykonywania zapytań. Jest to zabezpieczenie (IMG:style_emoticons/default/smile.gif) Opisz mi dokładniej co musisz zrobić itp. Jeśli będzie Ci wygodniej to zapraszam do rozmowy przez GG: 25628835 Pozdrawiam. (IMG:style_emoticons/default/winksmiley.jpg) Ten post edytował modern-web 23.10.2010, 21:07:30 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Takie losowanie chciałem zrobić z nagrodami. Chciałem być rzetelny wobec swoich użytkowników dlatego potrzebuje zrobić aby to samo losowało.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Mógłbyś opisać to jeszcze bardziej szczegółowo (IMG:style_emoticons/default/smile.gif) ?
Co ma być losowane? Ile razy? Co ma się dziać itp... Jak sobie wyobrażasz działanie takiego skryptu (IMG:style_emoticons/default/winksmiley.jpg) ? Muszę znać Twoją koncepcję (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Po prostu... Zegar odlicza a gdy skończy w linii 9-22 wykonuje się zapytanie które losuje zwycięzce. Losowanie będzie raz na jakiś czas.
Ten post edytował Croos22 23.10.2010, 23:08:27 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Ja to rozumiem tak:
1. zegar odlicza 2. kończy odliczanie 3. wykonuje skrypt php 4. skrypt zawiera zapytanie do bazy danych 5. skrypt losuje jednego z np. 10000 użytkowników 6. wyświetla go Jeśli tak to jest jak ja myślę to znam świetne rozwiązanie (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie o to chodzi.
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
A powiedz mi jeszcze;
Dość istotna sprawa. Czy użytkownicy mogą być losowani 2 razy? Wiesz, że np. 10 listopada wypadnie użytkownik x, 10 grudnia użytkownik y ale 10 stycznia ponownie użytkownik x... Czy może tylko raz na całą serię losowań? |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak lecz przy dużej liczbie użytkowników szansa na wylosowanie dwa razy to jak szóstka w lotku.
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Dobra, to po prostu daj taki skrypt:
Pisałem z głowy i dodatkowo jest godzina 00:55 ;D Mam nadzieję, że jest dobrze - jeśli nie to rano poprawię (IMG:style_emoticons/default/smile.gif) Dobrej nocy życzę, Pozdrawiam (IMG:style_emoticons/default/biggrin.gif) Ten post edytował modern-web 24.10.2010, 12:02:08 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Coś niestety poszło nie tak :<
Parse error: syntax error, unexpected $end in /index.php on line 187 W całym index.php mam 186 linii kodu.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 22:18 |