Seite 1 von 2

Update nicht korrekt

Verfasst: 29.01.2005 21:37
von rox²³
Ich brauche mal nen kleinen Denkanstoß bei ner sache wo ich einfach keine Lösung finde.

Meist sind die Lösungen ganz simpel wenn man jemand anderen Fragt weil man selbst nicht drauf kommt. :)

Folgendes Problem.

Ich lese aus der Datenbank (MySQL) einen Wert aus.
Der Feld Typ ist vom Typ INT(15)

Dann erhöhe ich den Wert um jeweils 1 (++).

Jetzt mache ich eine Update Syntax und schreibe das Ergebniss wieder in die Datenbank.

Jedoch ist der Wert ständig um 1 zu hoch.

Beispiel:
Startwert 0 ergibt 2
Startwert 2 ergibt 4 usw.

Bin ich blöd oder was iss da los? :-?

Ich habe auch schon geschaut obs an evt. Schleifen liegt aber das ganze wird jeweils nur 1 mal ausgeführt.
Der Variablen Wert ist immer richtig nur beim Update ists dann plötzlich um den Wert 1 zu hoch.

Verfasst: 29.01.2005 21:51
von Dave
Zeig doch einfach mal den code :-)

Wenn es viel ist am besten als txt verlinken

MfG
Dave

Verfasst: 29.01.2005 21:55
von rox²³
Das ist der Teil:

Code: Alles auswählen

$get_topic_id = mysql_db_query("$dbank", "SELECT * FROM ".$praefix."topic WHERE id='$topic_id'");
$fetch_get_topic_id = mysql_fetch_array($get_topic_id);
$topic_hits = $fetch_get_topic_id['hits'];
$topic_hits++;
mysql_db_query("$dbank", "UPDATE ".$praefix."topic SET hits='$topic_hits' WHERE id='$topic_id'");

Verfasst: 29.01.2005 23:41
von Dave

Code: Alles auswählen

$get_topic_id = mysql_db_query("$dbank", "SELECT * FROM ".$praefix."topic WHERE id='$topic_id'");
$fetch_get_topic_id = mysql_fetch_array($get_topic_id);
$topic_hits = $fetch_get_topic_id['hits'];
$topic_hits = $topic_hits + 1;
mysql_db_query("$dbank", "UPDATE ".$praefix."topic SET hits='$topic_hits' WHERE id='$topic_id'");
Was passiert so?

Verfasst: 29.01.2005 23:49
von rox²³
Ich habe Mittlerweile festgestellt das es an dem Tabellen Feld liegen muss.
Selbst:

Code: Alles auswählen

mysql_db_query("$dbank", "UPDATE ".$praefix."topic SET hits=hits+1 WHERE id='$topic_id'");
Bringt den gleichen Effekt.

Verfasst: 30.01.2005 00:49
von rox²³
Ich habe rausgefunden das der Mozilla das anders interpretieret als der IE.
Im IE wirds korrekt ausgeführt im Mozilla nicht.
Was wiederum eigentlich schwachsinn ist da das ja auf dem Server geparst wird. Jetzt versteh ich garnix mehr -.-

Verfasst: 30.01.2005 03:53
von Pyramide
Hast du irgendwelchen Weiterleitungs- Javascript o.ä. Code in der Datei?

Verfasst: 30.01.2005 11:41
von rox²³
Wäre möglich weil viele Dateien zum erzeugen zuständig sind header, footer loop etc.
Ich hab jetzt in der Apache Log Datei gesehen das die betroffene Datei immer zweimal ausgeführt wird. Wieso weiß ich noch nicht.
Ich bin gerade bei der Fehleranalyse. :roll:

Verfasst: 24.02.2007 17:32
von rox²³
Jetzt hab ich das Problem schon wieder und ich weiß nicht wie ich das damals gelöst habe -.-

Verfasst: 24.02.2007 18:38
von Miriam
Hast Du Dir mmal den Query zum UPDATE per echo ausgeben lassen? Dann kannst Du erst mal sehen, ob es an der Query liegt oder nicht.