Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sprawdzanie co minutę
Biqs
post 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.
Go to the top of the page
+Quote Post
karolbiegan
post 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
Go to the top of the page
+Quote Post
Biqs
post 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?
Go to the top of the page
+Quote Post
!*!
post 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).
Go to the top of the page
+Quote Post
Biqs
post 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?
Go to the top of the page
+Quote Post
!*!
post 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).
Go to the top of the page
+Quote Post
Biqs
post 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ą
Go to the top of the page
+Quote Post
kapslokk
post 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.
Go to the top of the page
+Quote Post
Biqs
post 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 smile.gif 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 smile.gif 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 sad.gif

Ktoś pomoże, czy mój wpis nada się tylko do skasowania?

Ten post edytował Biqs 6.07.2016, 21:02:22
Go to the top of the page
+Quote Post
mlawnik
post 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ć
Go to the top of the page
+Quote Post
Biqs
post 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ę smile.gif

Ten post edytował Biqs 7.07.2016, 00:42:11
Go to the top of the page
+Quote Post
Pyton_000
post 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.
Go to the top of the page
+Quote Post
Biqs
post 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 sad.gif
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ą
Go to the top of the page
+Quote Post
viking
post 7.07.2016, 13:40:09
Post #14





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
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.


--------------------
Go to the top of the page
+Quote Post
com
post 7.07.2016, 13:45:13
Post #15





Grupa: Zarejestrowani
Postów: 3 032
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 smile.gif
Go to the top of the page
+Quote Post
Biqs
post 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 smile.gif ), 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.
Go to the top of the page
+Quote Post
mlawnik
post 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_*":
  1. <?php
  2.  
  3. $connection = mysql_connect('host','user','pass');
  4. $db = mysql_select_db('baza', $connection);
  5. $wynik = mysql_query('select * from tabela');
  6. while ($txt = mysql_fetch_assoc($wynik)) {...}
  7.  


Kod "mysqli_*":

  1. <?php
  2.  
  3. $conn = mysqli_connect("ip serwera", "użytkownik", "hasło", "nazwabazy");
  4. $query = mysqli_query ( $conn , 'select * from tabela');
  5. $wynik = mysqli_fetch_assoc ($query);
  6. while ($txt = mysqli_fetch_assoc($wynik)) {...}


--------------------
Pozdrawiam,
mlawnik

Cytat(nospor)
Jedzmy gówno.... miliony much nie może się przecież mylić
Go to the top of the page
+Quote Post
Biqs
post 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ę.
Go to the top of the page
+Quote Post
mlawnik
post 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 wink.gif


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ć
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 00:13