![]() |
[MySQL] Query funktioniert nur lokal richtig, warum?
Hallo und guten Morgen,
ich habe ein merkwürdiges Problem und bin sicher, dass dies an Einstellungen liegt die auf meinem Apache anders sind als auf dem Space meines Hosters, nur weis ich nicht welche es sind. Es geht um folgendes:
SQL-Code:
Diese Zeilen dienen mit dazu, einen einfachen Counter mit IP-Sperre zu realisieren. Dies funktioniert lokal wunderbar, doch im Web sieht es so aus, dass der erste Query nicht ausgeführt wird und bei den anderen beiden, bei denenen lediglich der Wert um 1 erhöht werden soll, ist es so, dass zu den alten Wert nicht 1 addiert wird, sondern nach dieser Formel, wie ich mitbekommen habe:
mysql_query("INSERT INTO counters_net (counter, value) values('".$ip."',".time().")");
mysql_query("UPDATE statistics_net set value = value + 1 WHERE id = 12"); mysql_query("UPDATE statistics_net set value = value + 1 WHERE id = 13");
Code:
Der zu erhöhende Wert wird mit 3 multipliziert und dann zum alten Wert hinzuaddiert, weshalb man annehmen könnte, dass der Code 3 mal durchlaufen wird, er wird aber nur einmal pro Seitenaufruf ausgeführt (Erinnerung: lokal funktioniert es), weshalb ich mit diesen Sprung nicht erklären kann.
OLDVALUE = OLDVALUE + NEWVALUE * 3
Hat jemand einen Rat für mich? Sehe ich den Wald vor lauten Bäumen nicht? Oder ist es doch eine Einstellungssache? Auf meiner Website ist es unten links zu sehen (Statistik): ![]() Gruß Mazel |
Re: [MySQL] Query funktioniert nur lokal richtig, warum?
Hi,
mir würde auf anhieb auch nix auffallen, an deinem query. Probier mal folgendes:
SQL-Code:
Nach diesem schema hab ich meine querys immer gegliedert.
$date = time();
mysql_query("INSERT INTO `counters_net` (counter, value) values ('$ip','$date')"); mysql_query("UPDATE `statistics_net` SET value=value+1 WHERE id='12'"); mysql_query("UPDATE `statistics_net` SET value=value+1 WHERE id='13'"); MfG - Ghost007 P.S.: Du rufst das ganze ja mit einem php script auf,oder? |
Re: [MySQL] Query funktioniert nur lokal richtig, warum?
Das kann man noch ein klein wenig kürzen (obwohl ich auch keine Fehlerursache erkennen kann):
SQL-Code:
$date = time();
mysql_query("INSERT INTO `counters_net` (counter, value) values ('$ip','$date')"); mysql_query("UPDATE `statistics_net` SET value=value+1 WHERE id IN (12,13)"); |
Re: [MySQL] Query funktioniert nur lokal richtig, warum?
:roll: Problem gelöst.
Es lag nicht an diesem Code. Die counters_net Tabelle hat noch eine weitere Spalte id, die lokal auf auto_increment gestellt ist, dummerweise noch nicht in der Tabelle fürs Web. :wall: Dennoch ist für mich unklar, warum der eine Wert um 3 Zähler höher ging. Ich danke auch dennoch, ich wär ohne die Sicherheit, das der Code stimmt, nicht darauf gekommen, in der Tabelle nach Fehlern zu suchen. :) Gruß Mazel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz