tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
14
ZUGRIFFE
931
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Nov 2001
    Ort
    nähe Hamburg
    Beiträge
    564
    Hallo!

    Ich betreibe eine Songtextseite, für jeden Songtext ist in mySQL eine Spalte "counter" angelegt, die bei jedem Aufruf wird mit
    PHP-Code:
    $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
     

  2. #2
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    sehr merkwürdig

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

    ev hilft das ja ..
     

  3. #3
    Registriert seit
    Nov 2001
    Ort
    nähe Hamburg
    Beiträge
    564
    Habs jetzt so gemacht, nochmal mit ner if-Abfrage überprüfen und ggfls. eine Mail senden, wo der Fehler auftritt.

    PHP-Code:
           $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);
           } 
     

  4. #4
    Avatar von Tob
    Tob Tob ist offline Mitglied Platin
    Registriert seit
    Apr 2001
    Ort
    Großraum Deutschland ;-)
    Beiträge
    636
    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.
     

  5. #5
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    glaube ich nicht dran


    grenzen sind 127,32767 usw...
     

  6. #6
    Registriert seit
    Nov 2002
    Beiträge
    2.709
    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?
     

  7. #7
    Registriert seit
    Nov 2001
    Ort
    nähe Hamburg
    Beiträge
    564
    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.
     

  8. #8
    Registriert seit
    Nov 2002
    Beiträge
    2.709
    Hm, das ist ungewöhnlich...
    Versuch mal den Query:
    PHP-Code:
    <?php
    mysql_query
    ("UPDATE deutsch SET count = count + 1 WHERE (zahl='$zahl')");
    ?>
    Ich habe sonst wirklich keien Ahnung was das sein könnte.
     

  9. #9
    Avatar von Tob
    Tob Tob ist offline Mitglied Platin
    Registriert seit
    Apr 2001
    Ort
    Großraum Deutschland ;-)
    Beiträge
    636
    @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
     

  10. #10
    Registriert seit
    Nov 2002
    Beiträge
    2.709
    @Tob: Na dann muss ich mich entschuldigen.

    @Problem: $zahl ist die Lied-ID, glaube ich, oder wie ist das ?
     

  11. #11
    Registriert seit
    Nov 2001
    Ort
    nähe Hamburg
    Beiträge
    564
    Original geschrieben von boom

    @Problem: $zahl ist die Lied-ID, glaube ich, oder wie ist das ?
    Richtig, das ist nicht die Anschau-Häufigkeit, sondern die ID! $count ist der Counter.

    Feldhofe
     

  12. #12
    Registriert seit
    Nov 2001
    Ort
    nähe Hamburg
    Beiträge
    564
    Original geschrieben von boom
    Hm, das ist ungewöhnlich...
    Versuch mal den Query:
    PHP-Code:
    <?php
    mysql_query
    ("UPDATE deutsch SET count = count + 1 WHERE (zahl='$zahl')");
    ?>
    Ich habe sonst wirklich keien Ahnung was das sein könnte.
    Nein!
    Das ist es leider, leider, leider nicht!
    Habe das gestern eingebaut -und einen Tag später sind von den 30 Top-Texten 4 "mutiert"...

    Ich habe mir das Ganze jetzt noch einmal genauer angesehen, es gibt da noch einige andere Merkwürdigekeiten:

    1) Wenn ich mir die betreffenden Texte in PHP myAdmin ansehen will, kommt eine Errormeldung, ich hätte Anführungszeichen nicht geschlossen.

    2) Nach der "Mutation" stehen die Texte nicht mehr in ihrer ursprünglichen Sortierung (ich lasse die Songtitel nach Interpreten sortiert ausgeben, also z.B. alle von "Aaliyah" auf einer Seite usw.).
    Nun stehen allerdings zwei optisch gleiche "Aaliyahs" nebeneinander, zu der einen gibt es nur diesen eine (mutierten) Text, zu der "anderen" den Rest.
    Das kann man sich z.B. hier anschauen:
    http://www.superlyrics.de/deutsch-2-...hp?char=Zahlen

    Es gibt da zwei absolut gleich geschriebene "2 Pac" als Interpreten, der mit dem einen Text ist der mutierte!

    3) Hier nocheinmal die Zahlen (vielleicht ist da ja irgendein System dahinter?):

    Angaben jeweils Interpret - Titel - Count gestern - Count heute
    Gigi d'Agostino - L'Amour toujours - 10006 - 1074
    Kylie Minogue - Can't get you out of my Head - 9411 - 396
    Eminem - Stan - 9355 - 283
    2 Pac - Changes - 7870 - 954


    Was meint ihr dazu?
    Auch wenn ihr vielleicht keine Lösung parat habt, ist das nicht eigenartig****?

    Feldhofe
     

  13. #13
    Avatar von Tob
    Tob Tob ist offline Mitglied Platin
    Registriert seit
    Apr 2001
    Ort
    Großraum Deutschland ;-)
    Beiträge
    636
    hab leider keinen plan was da abgeht... aber frag doch mal im mysql forum nach vieleicht wissen die was...

    tob
     

  14. #14
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    hmm was mir aufgefallen ist

    manchmal hast du wirre zahlen in deinen
    interpretentiteln ... kuck doch mal wie die links bei einigen songs aussehen...



    und was noch sein kann

    die zeichen " und '
    haben auch bei mysql sonderbedeutung

    wenn die nicht maskiert sind könnte das das problem sein weil '

    bedeutet ende vom text ( das würde die adminfehlermeldung erklären... )
     

  15. #15
    Registriert seit
    Nov 2001
    Ort
    nähe Hamburg
    Beiträge
    564
    Original geschrieben von melmager
    hmm was mir aufgefallen ist
    manchmal hast du wirre zahlen in deinen
    interpretentiteln ... kuck doch mal wie die links bei einigen songs aussehen...
    Das ist beabsichtigt gewesen.
    Weil mir der ganze Zirkus mit AddSlashes und StripSlashes zu blöd war (an der einen Stelle funktioniert es gerade, dafür steht dann an der anderen Stelle \') habe ich innerhalb der Links bestimmte Sonderzeichen durch eine Zahlenkombination ausgetauscht.
    Sicher nicht die beste Lösung, da hast du schon Recht! Aber daran sollte es eigentlich nicht liegen.



    Original geschrieben von melmager


    die zeichen " und '
    haben auch bei mysql sonderbedeutung

    wenn die nicht maskiert sind könnte das das problem sein weil '

    bedeutet ende vom text ( das würde die adminfehlermeldung erklären... )
    Ich weiß....aber damit hat es bisher noch nie Probleme gegeben, wenn das falsch interpretiert werden würde, dürfte doch der betreffende Text überhaupt nicht angezeigt werden, oder?

    Am besten wäre sicherlich, in der gesamten Datenbank alle ' " ` ´ etc. durch den richtien Sonderzeichencode (z.B. &#39;) auszutauschen, oder?
    Ließe sich sowas denn eigentlich relativ einfach automatisch umsetzen? SOnst würde ich das nämlich mal testen.

    Feldhofe
     

Ähnliche Themen

  1. Sehr sehr sehr einfacher Generator
    Von greendog im Forum PHP
    Antworten: 4
    Letzter Beitrag: 16.11.06, 18:42
  2. Style nicht gefunden... sehr merkwürdiges Problem
    Von seltsam_mit_hut im Forum XML Technologien
    Antworten: 2
    Letzter Beitrag: 06.11.06, 16:28
  3. Antworten: 2
    Letzter Beitrag: 18.07.05, 10:17
  4. Sehr sehr seltsames Problem
    Von SilentWarrior im Forum HTML & XHTML
    Antworten: 12
    Letzter Beitrag: 31.12.02, 14:20