Problem z INSERT
Jag - 12-11-2006 01:30
Problem z INSERT Witam.
Mam taki problem z MySQL (4.1.18). Mam tabelę, która zapisuje mi ilość wejść na strony. Piszę w PHP. Tabela wygląda mniej więcej tak:
TABLE: pages_view
pvID - BIGINT AUTO_INCREMENT pvHash - VARCHAR(10) pvVisits - BIGINT
pvID - zrobiłem bo lubię mieć indeks :) pvHash - to taka wypadkowa z wybranego menu i podmenu. Nie ma prawa się powtórzyć - i się nie powtarza, sprawdzone. pvVisits - ilość odwiedzin danej podstrony.
Kod PHP, który tym zarządza wygląda tak:
$hasz=$this->CreateMenuHash(); // Tutaj tworzę hasz $r=mysql_query("SELECT pvID, pvVisits FROM pages_view WHERE pvHash='".$hasz."'"; $ile=mysql_count_rows($r); if ($ile==1) { $d=mysql_fetch_assoc($r); $odslon=$d["pvVisits"]; $odslon++; $r=mysql_query("UPDATE pages_view SET pvVisits='".$odslon."' WHERE pvID=".$d["pvID"]; echo "Odsłon: ".$odslon; } else { $r=mysql_query("INSERT INTO pages_view (pvVisits, pvHash) VALUES ('1','".$hasz."')"); echo "Odsłon: 1"; }
Pierwszą odsłonę wpisuje bardzo elegancko. Niestety, kiedy odświeżam stronę i powinno pojawić się "Odsłon: 2" dostaję... 3 odsłony. Potem 5. Potem 7. Tak jakby UPDATE wykonywało się dwukrotnie. A napis "Odsłon: " pojawia się tylko raz, co sugeruje, że kod nie jest wykonywany dwukrotnie. Zresztą, zamiast mysql_query mam tak naprawdę (nie chciało mi się przepisywać i wyjaśniać) obiekt, który zlicza wywołania mysql i dodatkowo wszystkie zapisuje - nic nie jest tam notowane podwójnie. Szlag mnie trafia. Ktoś może spotkał się z czymś takim?
-- pozdrawiam Jag
Jag - 12-11-2006 01:31
Użytkownik "Jag" <jag@jca.no-spampls.iserwer.pl> napisał w wiadomości news:4519a0b2$1@news.home.net.pl... [...] > Pierwszą odsłonę wpisuje bardzo elegancko. Niestety, kiedy > odświeżam stronę i powinno pojawić się "Odsłon: 2" dostaję... > 3 odsłony. Potem 5. Potem 7. Tak jakby UPDATE wykonywało > się dwukrotnie. A napis "Odsłon: " pojawia się tylko raz, > co sugeruje, że kod nie jest wykonywany dwukrotnie. Zresztą, > zamiast mysql_query mam tak naprawdę (nie chciało mi się > przepisywać i wyjaśniać) obiekt, który zlicza wywołania > mysql i dodatkowo wszystkie zapisuje - nic nie jest tam > notowane podwójnie. > Szlag mnie trafia. > Ktoś może spotkał się z czymś takim?
Poczyniłem dodatkową, dość zagadkową obserwację... Zlicza podwójnie, gdy odświeżam strony pod IE lub pod FireFoxem. Natomiast znakomicie zlicza (pojedynczo) gdy robię to pod Operą. ???
-- pozdrawiam Jag
zarafiq@poczta.onet.pl - 12-11-2006 01:31
> Poczyniłem dodatkową, dość zagadkową obserwację... > Zlicza podwójnie, gdy odświeżam strony pod IE > lub pod FireFoxem. Natomiast znakomicie zlicza > (pojedynczo) gdy robię to pod Operą. > ???
Wygląda na to że ... NTG :) Strzelam - masz jakiś skrypt w źródle strony, który powoduje przeładowanie. Opera nie obsługuje tego skryptu i działa.
Pozdrawiam zarafiq
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Jag - 12-11-2006 01:31
Użytkownik <zarafiq@poczta.onet.pl> napisał w wiadomości news:4261.0000011f.451aa4fe@newsgate.onet.pl... > Wygląda na to że ... NTG :)
:)
> Strzelam - masz jakiś skrypt w źródle strony, > który powoduje przeładowanie. > Opera nie obsługuje tego skryptu i działa.
Hm... JavaScriptu nie używam wcale... W PHP też niczego takiego nie kazałem robić... I w samym HTMLu takoż nie!
Czy jest jakaś możliwość logowania wywołań bazy na poziomie niższym niż PHP? Baza jest zdalna, u providera... czy pozostaje mi podglądanie pakietów czymkolwiek?
-- pozdrawiam Jag
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
mysql i mysql-front, problem
String line; if (line=="cos"){...}....problem
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
[postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?=
[oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?=
Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ]
[PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ?
[MySQL] Problem z zapisem danych w bazie danych
Problem z mysql - can't connect to MySQL/nietypowo...
zanotowane.pldoc.pisz.plpdf.pisz.plnatalia97.htw.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 |
|