[MySQL] - zautomatyzowac jeden proces, jak ?
1a2b3c4d5eWYTNIJTO@poczta.onet.pl - 12-08-2006 01:32
[MySQL] - zautomatyzowac jeden proces, jak ?
Linux, dostep poprzez putty. Chcialbym zautomatyzowac jedno zadanie, ktore bym sobie odpalal w cronie. Problem jest nastepujacy: Jest sobie baza danych o nazwie "zwierzaki" a w niej tabela "liczba_odwiedzin" klikajac poprzez stronke na poszczegolne zwierzaki podbija sie liczbe odwiedzin w tabeli "liczba_odwiedzin". chcialbym ten proces zautomatyzowac aby tabela "liczba_odwiedzin" co noc podbijala sie o 3 lub 4 punkty bez recznego wywolywania polecenia sql ktore obecnie wyglada tak: UPDATE `zwierzaki` SET `liczba_odwiedzin` = '23' WHERE `id` =237 LIMIT 1 ; Do kazdego "zwierzaka" przypisany jest "id" ktory zmienia sie za kazdym razem jak dodam nowego zwierzaka wiec nalezy to wziasc pod uwage. Wnioskuje ze powinna wystapic jakas zmiena w: UPDATE `zwierzaki` SET `liczba_odwiedzin` = 'tu_jakas_zmienna' WHERE `id` =tu_jakas_zmienna LIMIT 1 ; Jak to zrobic ? Nie wiem czy dobrze to przedstawilem ale mam nadzieje ze jest w miare jasne.
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Mariusz Buk - 12-08-2006 01:32
O co dokładnie chodzi? 1. O polecenia dla crona? 2. O skrypt dla automatu powiększającego liczbę odwiedzin? 3. O właściwe zapytanie do bazy? 4. Rozumiem, że zwierzaki to tabela, a liczba odwiedzin to pole, a nie jak napisales odpowiednio: baza danych i tabela? W każdym razie tak zakładam.
Biorąc pod uwagę charakter grupy przypuszczam, że pytanie nr 3.
Odpowiedź dla zapytania, które powiększa pole liczba_odwiedzin we wszystkich rekordach w tabeli UPDATE `zwierzaki` SET `liczba_odwiedzin` = `liczba_dowiedzin`+3 /* albo +4 */
dla zapytania, które ma brać pod uwagę jakiś konkretny ID zwierzaka wystarczy dodać:
WHERE id = `jakis_numer` LIMIT 1
Sugeruję przeczytanie pytania, zanim je wyślesz ponownie na grupę i oczywiście pozdrawiam.
1a2b3c4d5eWYTNI...@poczta.onet.pl napisał(a): > Linux, dostep poprzez putty. > Chcialbym zautomatyzowac jedno zadanie, ktore bym sobie odpalal w cronie. > Problem jest nastepujacy: > Jest sobie baza danych o nazwie "zwierzaki" a w niej tabela "liczba_odwiedzin" > klikajac poprzez stronke na poszczegolne zwierzaki podbija sie liczbe odwiedzin > w tabeli "liczba_odwiedzin". chcialbym ten proces zautomatyzowac aby tabela > "liczba_odwiedzin" co noc podbijala sie o 3 lub 4 punkty bez recznego > wywolywania polecenia sql ktore obecnie wyglada tak: > UPDATE `zwierzaki` SET `liczba_odwiedzin` = '23' WHERE `id` =237 LIMIT 1 ; > Do kazdego "zwierzaka" przypisany jest "id" ktory zmienia sie za kazdym razem > jak dodam nowego zwierzaka wiec nalezy to wziasc pod uwage. > Wnioskuje ze powinna wystapic jakas zmiena w: > UPDATE `zwierzaki` SET `liczba_odwiedzin` = 'tu_jakas_zmienna' WHERE `id` > =tu_jakas_zmienna LIMIT 1 ; > Jak to zrobic ? > Nie wiem czy dobrze to przedstawilem ale mam nadzieje ze jest w miare jasne. > > -- > Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
1a2b3c4d5eWYTNIJTO@poczta.onet.pl - 12-08-2006 01:33
> O co dokładnie chodzi? > 1. O polecenia dla crona? to wiem > 2. O skrypt dla automatu powiększającego liczbę odwiedzin? tak > 3. O właściwe zapytanie do bazy? tak > 4. Rozumiem, że zwierzaki to tabela, a liczba odwiedzin to pole, a nie > jak napisales odpowiednio: baza danych i tabela? W każdym razie tak > zakładam. oczywiscie co innego myslalem a co innego napisalem > > Biorąc pod uwagę charakter grupy przypuszczam, że pytanie nr 3. > > Odpowiedź dla zapytania, które powiększa pole liczba_odwiedzin we > wszystkich rekordach w tabeli > UPDATE `zwierzaki` > SET `liczba_odwiedzin` = `liczba_dowiedzin`+3 /* albo +4 */ zrobilem tak i mysql zwrocil komunikat Query OK, 0 rows affected (0,00 sec) Rows matched: 1 Changed: 0 Warnings: 0 ale nie podbil cyferek w "liczba_odwiedzin"
> > dla zapytania, które ma brać pod uwagę jakiś konkretny ID zwierzaka > wystarczy dodać: > > WHERE id = `jakis_numer` LIMIT 1
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Mariusz Buk - 12-08-2006 01:33
Nie znam basha, więc Ci nie pomogę, ale jeżeli możesz uruchomić np. PHP'a jako shell, tzn. dodać nagłówek i reszte w tej postaci: #!/usr/bin/php -q <? skrypcik ?>
Przy czym w tym przypadku php musi byc w sciezce podaje powyzej.
to spokojnie możesz użyć PHP'a do tego działania.
Co do nie zaktualizowania tabeli podaj strukturę, ilość wszystkich rekordów w tabeli oraz FAKTYCZNE zapytanie, które zapodałeś.
1a2b3c4d5eWYTNIJTO@poczta.onet.pl - 12-08-2006 01:33
> Nie znam basha, więc Ci nie pomogę, ale jeżeli możesz uruchomić > np. PHP'a jako shell, tzn. dodać nagłówek i reszte w tej postaci: > #!/usr/bin/php -q > <? skrypcik ?> > > Przy czym w tym przypadku php musi byc w sciezce podaje powyzej. > > to spokojnie możesz użyć PHP'a do tego działania. > > Co do nie zaktualizowania tabeli podaj strukturę, ilość wszystkich > rekordów w tabeli oraz FAKTYCZNE zapytanie, które zapodałeś.
przepraszam najmocniej jak zwykle za szybko czytam i niedokladnie: zamiast SET `liczba_odwiedzin` = `liczba_dowiedzin`+3 /* albo +4 */ zrobilem SET `liczba_odwiedzin` = +3 /* albo +4 */ teraz jest ok, reszta w cronie to betka (mam nadzieje) ;)
pozdrawiam i dzieki
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
1a2b3c4d5eWYTNIJTO@poczta.onet.pl - 12-08-2006 01:33
> > Nie znam basha, więc Ci nie pomogę, ale jeżeli możesz uruchomić > > np. PHP'a jako shell, tzn. dodać nagłówek i reszte w tej postaci: > > #!/usr/bin/php -q > > <? skrypcik ?> > > > > Przy czym w tym przypadku php musi byc w sciezce podaje powyzej. > > > > to spokojnie możesz użyć PHP'a do tego działania. > > > > Co do nie zaktualizowania tabeli podaj strukturę, ilość wszystkich > > rekordów w tabeli oraz FAKTYCZNE zapytanie, które zapodałeś. > > przepraszam najmocniej jak zwykle za szybko czytam i niedokladnie: > zamiast > SET `liczba_odwiedzin` = `liczba_dowiedzin`+3 /* albo +4 */ > zrobilem > SET `liczba_odwiedzin` = +3 /* albo +4 */ > teraz jest ok, reszta w cronie to betka (mam nadzieje) ;)
:( przedwczesna ma radosc (cholera za szybki jestem :)) wszystko cacy tylko polecenie : SET `liczba_odwiedzin` = `liczba_dowiedzin` +3 LIMIT 1 ; nie podbija liczniki dla wszystkich rekordow dopiero jak wskaze konkretne id to wtedy faktycznie dodaje prawidlowo, czyli: SET `liczba_odwiedzin` = `liczba_dowiedzin` +3 WHERE `id` =649 LIMIT 1 ;
Rekordow bedzie gdzies z 800, polecenie j/w, a struktura ? Hmmm.., nie bardzo wiem o co Ci chodzi ze struktura.
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Przemyslaw Popielarski - 12-08-2006 01:33
Mariusz Buk wrote: > Nie znam basha, więc Ci nie pomogę, ale jeżeli możesz uruchomić > np. PHP'a jako shell, tzn. dodać nagłówek i reszte w tej postaci: > #!/usr/bin/php -q > <? skrypcik ?>
Ale po co tu php, samo mysql -e nie wystarczy?
-- ../ premax ../ premax@hot.pl ../ koniec i bomba, a kto czytal ten traba. w.g.
keczerad - 12-08-2006 01:33
Przemyslaw Popielarski napisał(a):
> Ale po co tu php, samo mysql -e nie wystarczy? >
jak dla mnie to chyba wgetem latwiej otworzyc 3 razy strone ;)
--
keczerad
http://www.e-mo.com.pl sklep w (X)HTML
Paweł Matejski - 12-08-2006 01:33
1a2b3c4d5eWYTNIJTO@poczta.onet.pl wrote: > > :( przedwczesna ma radosc (cholera za szybki jestem :)) wszystko cacy tylko > polecenie : > SET `liczba_odwiedzin` = `liczba_dowiedzin` +3 LIMIT 1 ; > nie podbija liczniki dla wszystkich rekordow dopiero jak wskaze konkretne id to > wtedy faktycznie dodaje prawidlowo, czyli: > SET `liczba_odwiedzin` = `liczba_dowiedzin` +3 WHERE `id` =649 LIMIT 1 ; > > Rekordow bedzie gdzies z 800, polecenie j/w, a struktura ? Hmmm.., nie bardzo > wiem o co Ci chodzi ze struktura.
A po co to LIMIT 1?
-- P.M.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
zanotowane.pldoc.pisz.plpdf.pisz.plets2.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|