Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [MySQL] Query funktioniert nur lokal richtig, warum? (https://www.delphipraxis.net/112745-%5Bmysql%5D-query-funktioniert-nur-lokal-richtig-warum.html)

Mazel 26. Apr 2008 08:53


[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:
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");
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:
Code:
OLDVALUE = OLDVALUE + NEWVALUE * 3
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.

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): mj-software.net. Nach einem erneuten Aufruf sind es 3 mehr.

Gruß
Mazel

ghost007 26. Apr 2008 09:43

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:
$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'");
Nach diesem schema hab ich meine querys immer gegliedert.

MfG - Ghost007

P.S.: Du rufst das ganze ja mit einem php script auf,oder?

DeddyH 26. Apr 2008 10:31

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)");

Mazel 26. Apr 2008 12:15

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