Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Dodawanie co 15 minut danych do określonej komórki.
Wicepsik
post 2.04.2009, 22:06:22
Post #1





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Witam,
Mam w bazie danych 22400 graczy. Chciałbym wykonywać skrypt przez CURL co 15 minut.
Na stronie z której będę pobierać wyniki jest strona z graczami którzy są online.
Dany gracz ma nick Darkrose. Oczywiście jak jest na stronie z graczami online to dodaje, jeśli nie to nic nie dodaje. Chciałbym tam gdzie jest komórka Darkrose dodać liczbę 15.

Jak mogę to zrobić? Mam bardzo mało doświadczenia z php i mysql.

PS. Ile można trzymać wyników w 1 tabeli? Mam 22400 i nie chce mi dalej dodać.

Ten post edytował Wicepsik 2.04.2009, 22:15:04


--------------------
Go to the top of the page
+Quote Post
TomASS
post 2.04.2009, 23:19:30
Post #2





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Cytat
Chciałbym wykonywać skrypt przez CURL co 15 minut.

Jak cyklicznie to cron.

Cytat
Na stronie z której będę pobierać wyniki jest strona z graczami którzy są online.

Jeśli nie jest to strona na Twoim serwerze, to tak jak piszesz - CURL

Cytat
Chciałbym tam gdzie jest komórka Darkrose dodać liczbę 15.

Dodać do pola "czas" czy do pola "nick"?
Cytat
Jak mogę to zrobić?

Ale co? Dodawanie?
Cytat
Mam bardzo mało doświadczenia z php i mysql.

Czytaj, czytaj czytaj .... spokojnie znajdziesz wszystko w necie, podpowiadam:

- cykliczne wywoływanie - cron
- pobieranie strony - curl
- wpisywanie do bazy danych - mysql_query

Cytat
Ile można trzymać wyników w 1 tabeli?

A jaką znasz największą liczbę?

Cytat
Mam 22400 i nie chce mi dalej dodać.

A jaki błąd zwraca MySQL? Możesz mieć któreś z pól liczbowych zadeklarowane tak, że nie pomieści większych liczb.


--------------------
Go to the top of the page
+Quote Post
Wicepsik
post 3.04.2009, 20:52:36
Post #3





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Cytat(TomASS @ 3.04.2009, 00:19:30 ) *
Dodać do pola "czas" czy do pola "nick"?
Pole czas. Jeżeli jest gracz na stronie na której będę sprawdzać to dodaje do pola czas +15.

Ten post edytował Wicepsik 3.04.2009, 20:52:48


--------------------
Go to the top of the page
+Quote Post
TomASS
post 3.04.2009, 21:45:12
Post #4





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Zapytanie SQL do bazy danych:
  1. UPDATE tabela SET Czas=Czas+15 WHERE Nick='Darkrose';


--------------------
Go to the top of the page
+Quote Post
Wicepsik
post 3.04.2009, 22:35:33
Post #5





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Cytat(TomASS @ 3.04.2009, 22:45:12 ) *
Zapytanie SQL do bazy danych:
  1. UPDATE tabela SET Czas=Czas+15 WHERE Nick='Darkrose';



  1. UPDATE nick SET czas=czas+15 WHERE nick='".$matches[1][$i]."'";

Co jest w tym złego?


takim zapytaniem dodawałem osoby (50,000 nicków do bazy)
  1. INSERT INTO nick VALUES ('','".$matches[1][$i]."')


Ten post edytował Wicepsik 3.04.2009, 22:36:51


--------------------
Go to the top of the page
+Quote Post
Fifi209
post 4.04.2009, 07:19:38
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


  1. INSERT INTO nick VALUES ('','".$matches[1][$i]."')


Tak byłoby lepiej:
  1. INSERT INTO `nick` VALUES(NULL, "'.$matches[1][$i].'")
(o ile pierwsze pole to auto_increment

Cytat(Wicepsik @ 3.04.2009, 23:35:33 ) *
  1. UPDATE nick SET czas=czas+15 WHERE nick='".$matches[1][$i]."'";

Co jest w tym złego?


Może pomyliłeś się przy apostrofach/cudzysłowach ? Pokaż jak wygląda to w php. winksmiley.jpg

Cytat(Wicepsik @ 2.04.2009, 23:06:22 ) *
PS. Ile można trzymać wyników w 1 tabeli? Mam 22400 i nie chce mi dalej dodać.


Nie pamiętam ile mieści int ale możesz spróbować z bigint
A najlepiej przy tak dużej bazie skorzystaj z postgresql


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Wicepsik
post 4.04.2009, 12:46:36
Post #7





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. UPDATE nick SET czas='czas+15' WHERE nick='".$matches[1][$i]."'

Już wiem co było źle. Teraz inny problem. W polu czas dodało mi czas+15
A jak zrobić, jeżeli w polu czas jest liczba 15 i chce dodać do tej liczby znów 15 ?


--------------------
Go to the top of the page
+Quote Post
TomASS
post 4.04.2009, 19:01:58
Post #8





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Czy pole "czas" ma typu liczbowego? Bo jak pojawił Ci się tam string "czas+15" to masz pole tekstowe a nie liczbowe. Daj dokładnie tak jak napisałem:

  1. UPDATE tabela SET Czas=Czas+15 WHERE Nick='Darkrose';

Bez apostrofów przy "Czas", dla Ciebie to będzie wyglądało tak:

  1. UPDATE nick SET czas=czas+15 WHERE nick='".$matches[1][$i]."'



Cytat
Nie pamiętam ile mieści int ale możesz spróbować z bigint

Tutaj masz wszystko napisane
Cytat
A najlepiej przy tak dużej bazie skorzystaj z postgresql

Że co? A niby czemu? 23 tyś to duża baza? Ilość danych które pomieszczą INTy (big/small/itd...) są takie sam dla MySQL i Posta...


--------------------
Go to the top of the page
+Quote Post
Wicepsik
post 4.04.2009, 19:16:45
Post #9





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----



Tak mam. Nie dodaje liczb. Owszem, lepiej by było gdyby to było dodawane w formie godziny. Czyli co 15minut dodaje, gdy ktoś jest online 1h to przy wyświetlaniu pokazuje 01:00 h
Mam 50 tysięcy rekordów.



Ten post edytował Wicepsik 4.04.2009, 19:17:53


--------------------
Go to the top of the page
+Quote Post
decha-design
post 4.04.2009, 19:24:41
Post #10





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

Ostrzeżenie: (0%)
-----


to zamiast varchar daj int ... bedzie lepiej


--------------------
Go to the top of the page
+Quote Post
Wicepsik
post 4.04.2009, 19:29:09
Post #11





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Początkowa wartość time = 00:00
Co 15 minut odpalam skrypt i jeżeli ktoś online to dodaje 00:15
00:45 + 00:15 = 01:00
Dało by rade coś takiego wykombinować? biggrin.gif

//edit
Zmieniłem za TIME i działa biggrin.gif


Inne pytanie.
  1. Jak zrobić skrypt dostosowany do daty, czyli dzisiaj 04.04.2009 to wstawia do konkretnej kolumny a jutro 05.04.2009 to wstawia do innej kolumny automatycznie?
  2. Zrobić kolumny na cały rok?

/edit2
Jest 00:45 h i dodaje 15 i nie wyświetla się 01:00 .... czemu? :/

Ten post edytował Wicepsik 4.04.2009, 20:35:54


--------------------
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: 24.04.2024 - 10:26