Sehr, sehr, sehr merkwürdiges Problem!

Feldhofe

Erfahrenes Mitglied
Hallo!

Ich betreibe eine Songtextseite, für jeden Songtext ist in mySQL eine Spalte "counter" angelegt, die bei jedem Aufruf wird mit
PHP:
$count=$row[4]+1;
mysql_query("update deutsch set count='$count' where zahl='$zahl'");

Das klappt soweit auch gut, aber je höher die Zahlen der einzelnen Texte werden, desto eher kommen Fehler vor.

Hier (Usercharts) gibt es eine Liste der meist aufgerufenen Texte, z.B. "La Passion" mit 9327 AUfrufen.
Es ist nur eine Frage der Zeit, plötzlich fällt die Zahl und der Text hat auf einemal angeblich wieder nur noch zwischen 200 und 300 Aufrufen (immer dazwischen!!).
Ich habe nicht den blassesten Schimmer, woran das liegen könnte ---> ihr aber sicher auch nicht, oder?

Gruß
Feldhofe
 
sehr merkwürdig

mach doch das hochzählen so:
mysql_query("update deutsch set count=count+1 where zahl='$zahl'");

ev hilft das ja ..
 
Habs jetzt so gemacht, nochmal mit ner if-Abfrage überprüfen und ggfls. eine Mail senden, wo der Fehler auftritt.

PHP:
       $count=$row[4]+1;
       if ($count>$row[4])
       {
       mysql_query("update deutsch set count='$count' where zahl='$zahl'");
       }
       else
       {
       $land='Fehler';
       $message="Der Fehler trat auf bei: ".$row[0]." - ".$row[1]." + count ".$row[4];
       $empfang='feldhofe@gmx.net';
       $absender='feldhofe@gmx.net';
       $bcc='feldhofe@gmx.net';
       $absender = "From: ".$absender;
       $bcc = "BCC: $bcc";
       mail($empfang,$land,$message,$absender,$bcc);
       }
 
hast du dir mal angesehen was du für einstellungen in der mysql tabelle hast? Da die zahl 9.327 schon sehr nahe bei 10.000 liegt könnte ich mir vorstellen dass in der Tabelle nur 4 ziffern erlaubt sind und er beim erreichen der 10.000 einfach wieder bei 1 beginnt.
 
Nee Nee :) Tob meint, dass das Feld "count" ein größenlimit von 4 haben könnte. Nicht die Maximalgröße vom Datentyp Integer. :) Oder reden wir nun aneinander vorbei? :)
 
Nein, das ist es bestimmt nicht.
Das Feld ist als Integer 9 definiert.
Das Komische ist ja auch, dass es nicht einfach wieder bei 1 beginnt, sondern irgendeine Fantasiezahl da steht...meist eben zwischen 200 und 300.

Original geschrieben von Tob
hast du dir mal angesehen was du für einstellungen in der mysql tabelle hast? Da die zahl 9.327 schon sehr nahe bei 10.000 liegt könnte ich mir vorstellen dass in der Tabelle nur 4 ziffern erlaubt sind und er beim erreichen der 10.000 einfach wieder bei 1 beginnt.
 
Hm, das ist ungewöhnlich...
Versuch mal den Query:
PHP:
<?php
mysql_query("UPDATE deutsch SET count = count + 1 WHERE (zahl='$zahl')");
?>

Ich habe sonst wirklich keien Ahnung was das sein könnte.
 
@boom
genauso wars gemeint.

warum eigentlich "where $zahl='$zahl'" ?
ich halte das nicht für besonders eindeutig. Sobald 2 Liedtexte estmal gleich oft betrachtet wurden, werden sie dann immer die gleiche zahl im count feld haben oder? Wäre es nicht besser nach dem Liednamen und Interpred oder so zu suchen und dann die änderung vorzunehmen?
Das ist wahrscheinlich nicht die Lösung für dein Problem, aber vieleicht eine für ein problem das noch kommen könnte:-) :-) :-)

Ansonsten weiß ich auch nicht mehr weiter

tob
 
Zurück