sprawdzanie co minutę |
sprawdzanie co minutę |
27.05.2016, 05:10:06
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 28.04.2016 Ostrzeżenie: (0%) |
Witam
Chcę zrobić konkurs w którym wygrywa co minutę jedna osoba. Osoby się zgłaszają, a w momencie wybicia kolejnej minuty 00s wybierana jest osoba która zgłosiła się pierwsza w poprzedniej minucie i tak cały czas. Strona osoby odświeża się co minutę, wystarczy że będzie czekać, aż wszyscy przed nią wygrają i ona będzie kolejna. Do tej pory jest tak, że osoba wygrywa, a kolejna za nią wygrywa w następnej minucie, lecz okazuje się, że nie wszyscy czekają do końca i miejsca rezerwowane dla następnych zostawały bez zwycięzców. Chciałbym by zostało przesuwanie miejsc co minutę o 1 wyżej, ale jakoś by prócz zwycięzcy, te puste też znikały co minutę. Teraz jest użyta baza w której jest zapisywany czas i sesja w momencie startu, a odświeżanie strony co minutę sprawdza, czy wpis jest już pierwszy. Pewnie są lepsze rozwiązania, z góry dzięki. |
|
|
16.06.2016, 17:45:09
Post
#2
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 16.06.2016 Ostrzeżenie: (0%) |
To coś na zasadzie za10groszy, czyli im więcej osób tym mniejsze szanse na wygrana
|
|
|
20.06.2016, 12:58:32
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 28.04.2016 Ostrzeżenie: (0%) |
Nie. za10groszy, to aukcja i tam prócz kolejności są porównywane wielkości stawek. U mnie każdy będzie wygrany, chcę tylko uniknąć sytuacji aby w tym samym czasie (w danej minucie) nie było 2 osób jednocześnie. Jeśli by coś takiego właśnie było, to pierwsza osoba będzie w tej minucie, a druga (lub więcej) w następnych. Jesteś w stanie mi pomóc?
|
|
|
20.06.2016, 13:16:11
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
Od takich rzeczy są websocety
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
20.06.2016, 13:27:59
Post
#5
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 28.04.2016 Ostrzeżenie: (0%) |
Na tym się nie znam :/
Może coś w stylu; 1. Sprawdź czy jest wpis na liście. 2. Jeśli nie ma - wpisz. 3. Jeśli jest - sprawdź czy jest 1, porównując z ostatnim wygranym (+60s). 4. Jeśli wpis jest 1 - zapisz zwycięzcę i skasuj pozostałe wpisy. 5. Jeśli nie jest 1 - czekaj do kolejnego odświeżenia strony. Wówczas kasować się też będą wpisy osób, które zrezygnowały z czekania. Ale jak to zastosować w kodzie najlepiej? |
|
|
20.06.2016, 13:31:28
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
Tylko tak nie wyeliminujesz osób które przestały czekać, ws załatwia ten problem jak i parę innych. A jeśli ktoś sobie pójdzie, to nawet gdy czas nie będzie się zgadzał, to co w przypadku jak będzie miał laga i nie odpyta serwera?
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
20.06.2016, 13:38:52
Post
#7
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 28.04.2016 Ostrzeżenie: (0%) |
Odświeżenie minutowe każe wszystkim czekać, a kasowanie listy zwalnia miejsca. Gdy ktoś ma laga, wróci i wykryte będzie że nie jest na liście, więc przejdzie wszystko jeszcze raz. Szukana musi być tylko pierwsza osoba, a jej kolejność to porównanie z ostatnią jaka wygrała, inni zostaną skasowani, nawet jak będzie ich 100 nie będzie to miało znaczenia, bo szukana musi być tylko 1 osoba. Cierpliwi doczekają się. Ale do moja wizja, pewnie gdybym się lepiej znał, znalazłbym lepszą
|
|
|
20.06.2016, 13:45:02
Post
#8
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) |
Nie rozumiem jednego - dostałeś info, że najlepiej będzie użyć websocketów, dla czego po prostu ich nie wykorzystasz, tylko brniesz dalej w jakieś cuda?
Argument "Na tym się nie znam :/" mnie osobiście nie przekonuje. Zawsze możesz się "na tym poznać", a serio nie zajmie Ci to dużo czasu. |
|
|
6.07.2016, 21:01:51
Post
#9
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 28.04.2016 Ostrzeżenie: (0%) |
Nie wiem na wet za co się zabrać. Troszkę ciśnie mnie termin, czas do końca m-c mam. Myślałem że tu znajdę jakieś rozwiązanie kodowe. Gdy już to będzie, to będę miał czas na spokojnie się edukować. Jestem samoukiem, moja nauka polega na próbach i błędach, przy tak ograniczonym czasie staram się dopasować swoją wiedzę by zmieścić się z wykonaniem.
Tu zwyczajnie są lepsi ode mnie i dlatego się do nich zwracamy, ci którzy zadają pytania. Są tacy jak ja, co się uczą, ale napotykają problem i szukają lepszych rozwiązań od tego co wymyślili A są tacy, co chcą mieć tylko gotowce za każdym razem. Jeśli ktoś chciałby przetłumaczyć coś z japońskiego, można mu powiedzieć, naucz się go I nawet jak jest w trakcie nauki, to jeszcze nie doszła do tych słów, a mimo to potrzebuje to wiedzieć wcześniej. Staram się coś zrobić, by działało, a później w między czasie zmieniać, ulepszać, dodawać. Więc jeśli są chętni by podać instrukcję do zastosowania, to chętnie skorzystam z ich wiedzy, ale jeśli nic tu nie osiągnę, nie będę miał wyjścia i będę musiał użyć tej mojej "prymitywnej" dla niektórych wiedzy. Każdy w czymś jest dobry i każdy może pomóc. ---------- Poradziłem sobie z tym problem, choć zakładałem że jest tu zapisanych więcej niż 3 osoby. Ale podejmę jeszcze jedną próbę uzyskania pomocy i sprawdzę czy fora są pomocne. Mam teraz problem z "nowszą wersją PHP", a dokładnie chodzi o logowanie mysql, a mysqli Do tej pory stosowałem np. $connection = mysql_connect('server','osoba','hasło'); $db = mysql_select_db('baza', $connection); Muszę to przekształcić na mysqli, tak by działało w tej formie j/w. Na tą chwilę działa, ale jak jest więcej połączeń, czy pętli, to wyświetla, brak połączenia z serwerem. Serwer mam darmowy i będę brał płatny, jeśli to wina serwa, to ok, ale jeśli wezmę płatny, a będzie ten sam problem, to chcę mieć go wcześniej z głowy. Od wersji 5 to chyba jest, a ja mam już min. 5.2 wstecz do ustawienia. Najlepiej będzie chyba zastosować nową komendę, ale tak by to działało. Owszem próbowałem ją użyć, ale uczę się na błędach i nie mogę tego przeskoczyć, przy nowej komendzie wyskakuje mi albo brak dostępu do serwera, albo bazy Ktoś pomoże, czy mój wpis nada się tylko do skasowania? Ten post edytował Biqs 6.07.2016, 21:02:22 |
|
|
6.07.2016, 21:34:28
Post
#10
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 49 Dołączył: 12.04.2010 Ostrzeżenie: (0%) |
Darmowy serwer wystarczy. Mysqli_* używa się podobnie jak mysql_*, przy czym parametry trochę się różnią.
Tutaj manual, wraz z przykładami: http://php.net/manual/en/book.mysqli.php A na później masz jeszcze hasło "PDO" (inny sposób łączenia się z bazą, trochę bardziej rozwinięty). -------------------- Pozdrawiam,
mlawnik Cytat(nospor) Jedzmy gówno.... miliony much nie może się przecież mylić |
|
|
7.07.2016, 00:05:14
Post
#11
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 28.04.2016 Ostrzeżenie: (0%) |
U siebie stosowałem 3 parametry w 1, tam są 4 i jak je używam to ciągle coś nie tak działa. Mógłbyś mi "przekształcić" tą komęde połączenia co podałem na tą nową? Proszę
Zwykle stosuję zapytanie połączone z pętlą, np. $wynik = mysql_query('select * from tabela'); while ($txt = mysql_fetch_assoc($wynik)) i tu siadam bo zapytanie jest w starej formie i nie umiem wpleść nowej. Ja wiem że to amatorsko brzmi, ale geniuszem nie jestem i się przyznaję Ten post edytował Biqs 7.07.2016, 00:42:11 |
|
|
7.07.2016, 10:41:25
Post
#12
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Na początek zrób replace "mysql_" na "mysqli_" i popraw to co się wysypało.
|
|
|
7.07.2016, 13:07:24
Post
#13
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 28.04.2016 Ostrzeżenie: (0%) |
Nie umiem
Warning: require_once(EasyMySQLi.inc.php): failed to open stream Fatal error: require_once(): Failed opening required 'EasyMySQLi.inc.php' (include_path='.:/opt/php-5.5/pear') Warning: mysqli_connect(): (HY000/2005): Unknown MySQL server host Fatal error: Call to a member function querySingleRow() on a non-object Fatal error: Class 'EasyMySQLi' not found Na serwie ustawione jest 5.5 Chcę tylko by to połączenie było i umieć zadać zapytanie, bo pewnie też jest w jakiejś innej formie teraz. Aktualnie mam tak $connection = mysql_connect('host','user','pass'); $db = mysql_select_db('baza', $connection); i potem jest zapytanie w pętli, np. $wynik = mysql_query('select * from tabela'); while ($txt = mysql_fetch_assoc($wynik)) {...} Czy mógłbyś to zamienić po nowemu, wtedy bym wstawił i może by zadziałało, bo moje próby nie idą |
|
|
7.07.2016, 13:40:09
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 375 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Wszystkie jest dokładnie opisane w komunikatach.
Nie można wczytać pliku EasyMySQLi.inc.php Dalej niepoprawny host mysql. Reszta to następstwo tych dwóch. Tutaj masz jak to zrobić w PDO. -------------------- |
|
|
7.07.2016, 13:45:13
Post
#15
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
I jak mamy Ci pomóc to potrzebujemy kod, ale lepiej już jak masz to pisać od nowa użyć sugerowanego PDO
|
|
|
7.07.2016, 14:04:00
Post
#16
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 28.04.2016 Ostrzeżenie: (0%) |
Chcę tylko przekształcić ten kod który podałem, reszta to standardowe komendy. Z tych dotyczących bazy jest tylko INSERT, DELETE, itp., np.
mysql_query("INSERT INTO tabela SET ....."); Jak to będzie działać, to będę robił nową stronę, już na spokojnie i wtedy będę się uczył zastosować PDO, tak jak piszesz - zrobię od nowa. Wciąż dołączają się osoby i to stale chodzi ( jak jest dostęp ), dlatego chcę tylko to utrzymać zanim się nauczę na swoich błędach. Proszę tylko zamienić samo połączenie, bo zanim zrobię nowe, to trochę zajmie, a nie chcę pracy półrocznej zaprzepaścić teraz swoją niewiedzą. Ale już od tego m-c zajmę się uczeniem tego, by zrozumieć to przekształcenie, jeżeli je dostanę od was. |
|
|
7.07.2016, 14:57:58
Post
#17
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 49 Dołączył: 12.04.2010 Ostrzeżenie: (0%) |
Cytat(Biqs) Proszę tylko zamienić samo połączenie, bo zanim zrobię nowe, to trochę zajmie, a nie chcę pracy półrocznej zaprzepaścić teraz swoją niewiedzą. Ale już od tego m-c zajmę się uczeniem tego, by zrozumieć to przekształcenie, jeżeli je dostanę od was. Dział zlecenia może będzie bardziej odpowiedni? Kod "mysql_*":
Kod "mysqli_*":
-------------------- Pozdrawiam,
mlawnik Cytat(nospor) Jedzmy gówno.... miliony much nie może się przecież mylić |
|
|
7.07.2016, 16:07:08
Post
#18
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 28.04.2016 Ostrzeżenie: (0%) |
Wybrałem Gotowe rozwiązania>Skrypty, bo myślałem że to dobre.
Dziękuję Ci bardzo za pomoc, teraz nawet jak mi nie zadziała, będę miał już podstawy by kombinować, ale sądzę że wszystko będzie dobrze. Jak się to widzi, to wydaje się logiczne i proste. Jeszcze raz dziękuję. |
|
|
7.07.2016, 16:25:36
Post
#19
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 49 Dołączył: 12.04.2010 Ostrzeżenie: (0%) |
Cytat Wybrałem Gotowe rozwiązania>Skrypty, bo myślałem że to dobre. Nie zauważyłem, mój błąd. :/ Twoja wypowiedź została przeze mnie odczytana jako chęć otrzymania gotowca. Polecam czytanie manuala, tam wszystko jest wytłumaczone. Najbardziej pasujący byłby dział Przedszkole albo PHP Masz rację, jak się zobaczy przykład to lepiej niż kombinować samemu, ale takie kombinowanie samemu też uczy, zwłaszcza jeżeli dostajesz hasła-wskazówki gdzie szukać. -------------------- Pozdrawiam,
mlawnik Cytat(nospor) Jedzmy gówno.... miliony much nie może się przecież mylić |
|
|
Wersja Lo-Fi | Aktualny czas: 10.11.2024 - 19:03 |