| Autor | Správa |
baumax
 Užívateľ
 Založený: 11.12.2007 Príspevky: 278
 | Zaslal: Ut 22.11.11 15:39 |   |
Ahojte, boli ma hlava, uz neviem ani jednoduchu vec spravit
takze mam tabulku:
| kód: | CREATE TABLE `overview` (
`id` int(11) NOT NULL auto_increment,
`date` date NOT NULL,
`pocet` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; |
takze mam tam nastaveny datumovy stlpec ...
ked pridem na stranku XYZ, tak chcem aby sa mi do tejto tabulky zapisovali pocty navstev danej stranky. Mam predstavu, ze ked uz v dany den tam navsteva bola, len sa spravi pocet+1 a ak je ta navsteva 1. tak sa do tabulky vlozi pocet = 1
nejako takto to mam: | kód: | $abc = Date("d.m.Y");
//kontrola, ci dany den uz je v tabulke overview
$vysledok123 = mysql_query("Select * overview WHERE date = '".$abc."'");
if (mysql_num_rows($vysledok123) > 0) { $errUzje=1; } else {$errUzje=0;}
if($errUzje == 1) {mysql_query("UPDATE overview SET pocet=pocet+1 WHERE date = '".$abc."'") or die("!!! Chyba: ".mysql_error());}
//if($errUzje == 0) {mysql_query("INSERT INTO overview (date,pocet) VALUES ('".$abc."','1')") or die("!!! Chyba: ".mysql_error());}
|
ale nejako to nejde, aj nejaky datum taky mi dava do Db, co je blbost: 2022-11-20
viem, trivialne, prepacte. Vysledok by mali byt zaznamy, pre kazdy den .. a v kazdom riadku by som videl dany datum a pocet navstev v danom datume a potom este si spravim vypis navstev pdla datumov. |
| |
  |
 |
GoodWill
 Skúsený užívateľ
 Založený: 29.10.2007 Príspevky: 1000 Bydlisko: Bratislava
 | Zaslal: Ut 22.11.11 16:46 |   |
Aka zhoda okolnosti, lebo dnes je prave 22.11.2011 |
_________________ Koľko SEO expertov je potrebných na výmenu žiarovky výmena žiaroviek žiarovka nové žiarovky úsporné žiarovky sexy žiarovka? | |
   |
 |
baumax
 Užívateľ
 Založený: 11.12.2007 Príspevky: 278
 | Zaslal: Ut 22.11.11 19:54 |   |
a pomoct nevies ?
// pridané po 2 hodinách 1 minúte od posledného príspevku
ked som zmenil stlpec `date` na tym varchar, tak pekne ten datum dalo v tvare akom ma byt: '20.11.2011'
a upravil som to na taky tvar:
| kód: |
$abc = time ();
.
.
.
... WHERE date = '".date("d.m.Y",$abc)."'")
|
ale to asi neni dobre riesenie, ked vlastne nevyuzijem tu date hodnotu, len ja neviem preco ju zle zadava, v zlom tvare, co som pisal vyssie |
| |
  |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: Ut 22.11.11 20:49 |   |
| baumax napísal: | | a pomoct nevies ? |
podla mna ti pomohol viac nez dost, jedine ak by si uz len chcel, aby ti ten kod napisal a este aj nahral na FTP.
pzri sa v akom formate mas datumy v DB, ak pouzijes typ date. a pozri sa, v akom formate ho tam zapisujes.
namiesto toho datumu vytvaraneho v PHP si pozri nejake funkcie v MYSQL
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
nebudes mat problem s formatmi atd, a este aj usetris nejake tie riadky. cely ten tvoj kod sa da upravit na jeden riadok |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
baumax
 Užívateľ
 Založený: 11.12.2007 Príspevky: 278
 | Zaslal: Ut 22.11.11 20:53 |   |
ano, bol by som rad keby ten kod napisal, vd preto som to tu napisal ja
resp. aj by si mohol ten kod napisat, ked vravis, ze to ide cez 1 riadok |
| |
  |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: Ut 22.11.11 21:02 |   |
|
    |
 |
baumax
 Užívateľ
 Založený: 11.12.2007 Príspevky: 278
 | Zaslal: Ut 22.11.11 21:15 |   |
nerozumiem tomu, napr UPDATE table SET c=c+1 WHERE a=1;
ale ake a=1 ? nieco tam pisu, ze hodnota sa = 1
u mna sa co bude rovnat 1 ? nic, akurat prvy zaznam v DB
nechapem
menili sa tu pomery ? ked som tu nieco potreboval, ludia mi pekne pomohli a napisali, napr. stenley a podobne, uz to tak nefunguje ? asi nie, ok, skusim inde, skoda |
| |
  |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: Ut 22.11.11 21:25 |   |
aj si si to cital, alebo si si pozrei iba ten kod? hend nad tym blokom s kodom je napisane, ze tie dva zapisy maju rovnaky efekt..
v tvojej tabulke ID nepotrebujes, ved tam mas jedinecny datum, naco ti je ID. Ci?
vuoala
| kód: | | INSERT INTO overview (datum,pocet) VALUES (NOW(), 1) ON DUPLICATE KEY UPDATE pocet = pocet + 1; |
staci ti vykonat tento dotaz a mas to, co si chcel |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať
Naposledy upravil emer dňa Ut 22.11.11 21:26, celkom upravené 1 krát. | |
    |
 |
baumax
 Užívateľ
 Založený: 11.12.2007 Príspevky: 278
 | Zaslal: Ut 22.11.11 21:26 |   |
toto by nemalo vlozit aktualny datum do DB ?
| kód: | | mysql_query("INSERT INTO table (date,experts) VALUES ('CURDATE()','1') |
stlpec date mam ako date a vlozilo tam toto: 0000-00-00 |
| |
  |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: Ut 22.11.11 21:28 |   |
no vlozi ti tam tie nuly mozno preto, ze si dal tu funciu do apostrofov
v php sa tieto dve premenne budu rovnat??
| kód: | $a = time();
$b = 'time()'; |
// pridané po 1 minúte od posledného príspevku
btw, prispevok hore som ti napisal ako to mas spravit. kedze to bol len jeden riadok ako si pisal, tak nemam problem ti to napisat, ale takto sa naucis velky prd a pri zlozitejsich alebo rozsiahlejsich problemoch ti fakt nik nepomoze. |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
baumax
 Užívateľ
 Založený: 11.12.2007 Príspevky: 278
 | Zaslal: Ut 22.11.11 21:45 |   |
|
  |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: Ut 22.11.11 21:47 |   |
|
    |
 |
baumax
 Užívateľ
 Založený: 11.12.2007 Príspevky: 278
 | Zaslal: Ut 22.11.11 21:57 |   |
yoo, posun sa eliminuje tymto: putenv("TZ=Europe/Bratislava");
dik |
| |
  |
 |
dulius
 Užívateľ
 Založený: 20.01.2007 Príspevky: 348
 |
| kód: | | putenv("TZ=Europe/Bratislava"); |
toto Ti posun nemusi spravit, ked pouzivas napr v sql CURDATE()
pred riadok, kde vkladas zaznamy daj toto napr:| kód: | | mysql_query("SET time_zone = '+1:00';"); |
to by malo nastavit spravny cas na Slovakiu. |
_________________ admin Fusion webu | |
  |
 |
baumax
 Užívateľ
 Založený: 11.12.2007 Príspevky: 278
 | Zaslal: Pi 25.11.11 20:03 |   |
mam to takto:
| kód: | mysql_query("SET time_zone = '+1:00';");
mysql_query("INSERT INTO table (date,experts) VALUES (CURDATE(), 1) ON DUPLICATE KEY UPDATE pocet = pocet + 1"); |
ale robi mi to urcitu sarapatu s tym datumom. Chcem sa spytat ci je mozne to spravit bez toho 1.riadku a aby som nejako v tom inserte vedel ten cas posunut |
| |
  |
 |
|