Update nicht korrekt

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
rox²³
Mitglied
Beiträge: 347
Registriert: 24.07.2003 15:18
Wohnort: Schmölln
Kontaktdaten:

Update nicht korrekt

Beitrag 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.
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag von Dave »

Zeig doch einfach mal den code :-)

Wenn es viel ist am besten als txt verlinken

MfG
Dave
Benutzeravatar
rox²³
Mitglied
Beiträge: 347
Registriert: 24.07.2003 15:18
Wohnort: Schmölln
Kontaktdaten:

Beitrag 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'");
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag 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?
Benutzeravatar
rox²³
Mitglied
Beiträge: 347
Registriert: 24.07.2003 15:18
Wohnort: Schmölln
Kontaktdaten:

Beitrag 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.
Benutzeravatar
rox²³
Mitglied
Beiträge: 347
Registriert: 24.07.2003 15:18
Wohnort: Schmölln
Kontaktdaten:

Beitrag 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 -.-
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Hast du irgendwelchen Weiterleitungs- Javascript o.ä. Code in der Datei?
KB:knigge
Benutzeravatar
rox²³
Mitglied
Beiträge: 347
Registriert: 24.07.2003 15:18
Wohnort: Schmölln
Kontaktdaten:

Beitrag 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:
Benutzeravatar
rox²³
Mitglied
Beiträge: 347
Registriert: 24.07.2003 15:18
Wohnort: Schmölln
Kontaktdaten:

Beitrag von rox²³ »

Jetzt hab ich das Problem schon wieder und ich weiß nicht wie ich das damals gelöst habe -.-
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag 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.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „Coding & Technik“