Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][SQL][PHP]Dziwna inkrementacja +2. Wina PHP, MySQL czy moja?, Problem dotyczy inkrementacji która wykonuje się dwa razy...
kamil17289
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.11.2011

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


Witam.
Jestem nowym użytkownikiem. Przeszukałem trochę forum, ale nie znalazłem wątków dotyczących mojego problemu, więc zakładam nowy.
Mam kod

  1. $article = mysql_fetch_array ($result1, MYSQL_ASSOC);
  2. $sql = "UPDATE ".$config->db_prefix."articles SET views=views+1 WHERE id=".$article['id'];
  3. $result2 = mysql_query($sql);


Po wyświetleniu $sql instrukcją echo wygląda ona poprawnie, i wysłana do bazy przez phpMyAdmina daje efekt o jaki mi chodzi, tj. zwiększa pole 'views' o 1.
Kiedy jednak wykona ją skrypt PHP przez mysql_query, w bazie pojawia się wartość większa od poprzedniej o 2, jak gdyby napisane było views=views+2.
Przeanalizowałem dokładnie cały kod, i nigdzie nie inkrementuję nic dwa razy. Instrukcja w phpMyAdmin działa poprawnie. Dla eksperymentu spróbowałem dać w kodzie views=views+2. Ku mojemu zaskoczeniu, wartość zwiększała się wtedy o 4.
Czy ktoś orientuje się o co chodzi? Czy to wina PHP czy MySQL czy czegoś jeszcze innego?
Pozdrawiam i dziękuję.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kamil17289
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.11.2011

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


Witam. Miło widzieć tyle podpowiedzi z rana (IMG:style_emoticons/default/wink.gif)
Utworzyłem plik favicon, bo faktycznie odwołanie do niego znajduje się w pliku szablonu, ale że szablon jeszcze nie jest skończony, plik favicon.ico nie istniał fizycznie. Nic to nie zmieniło. Próbowałem też sprawdzać to funkcją die(). Postawienie jej przed mysql_query($sql) powoduje że zapytanie nie jest wykonywane i wartość w bazie pozostaje taka sama przy odświeżaniu strony. Postawienie jej za mysql_query($sql) powoduje inkrementację +2, zamiast +1.
Przeanalizowałem też ponownie kod skryptu, nie znalazłem powtórzeń. Poza tym widać że ich nie ma po tym jak to się zachowuje przy kombinacjach z die()...
Zapoznałem się też z wysłanym wątkiem. Jestem nowicjuszem raczej i nie używałem jeszcze PDO, i nie wiele zrozumiałem z tamtych odpowiedzi...
Używam serwera Apache i MySQLa w XAMPP dla Windows, i nie potrafię znaleźć w nim .htaccess (IMG:style_emoticons/default/tongue.gif) Spróbuje wieczorkiem zrobić coś pod linuxem Ubuntu, tam się czuję nieco swobodniej.
Dziękuję wszystkim za pomoc (IMG:style_emoticons/default/wink.gif)

Witam ponownie. Znalazłem winowajcę (IMG:style_emoticons/default/wink.gif) A jest nim źle skonfigurowany Firefox dla Windows, w wersji 7.0.1. W wersji dla Linucha nie dzieją się żadne cuda. Opera, Safari i Chrome dla Windows też dają pozytywne rezultaty. Zaktualizuję się do wersji FF 8 i zobaczę co to da, ewentualnie popatrzę po konfiguracji. Byłem pewny że nie powtarzam kodu (IMG:style_emoticons/default/wink.gif) Zresztą, przecież samo zapytanie do bazy nie ma prawa zwiększać o dwa jeśli jest sformułowane w taki sposób (views=views+1).
Problem rozwiązany.
Dziękuję wszystkim i pozdrawiam (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 11.10.2025 - 09:36