Update funktioniert nicht immer

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Update funktioniert nicht immer

    Ich hab seit kurzem ein problem, das ich mit UPDATE manchmal keine werte mehr in die tabelle eintragen kann.
    mit phpadmin wird mir nach dem updatebefehle ein überhang angezeigt, der wert steht nicht in der tabelle.
    mit einer 20c5rows tabelle hatte ich ein ähnliches problem, das ich durch löschen einer varchar spalte lösen konnte, aber bei folgender tabelle hab ich das problem beim updaten der "p_rrate"


    CREATE TABLE tt_player(
    p_id tinyint(3) NOT NULL auto_increment,
    p_name varchar(15) NOT NULL default '0',
    p_imp varchar(15) NOT NULL default '0',
    p_lstat tinyint(1) NOT NULL default '0',
    p_sid tinytext NOT NULL,
    p_rrate smallint(5) NOT NULL default '0',
    p_cr bigint(15) NOT NULL default '0',
    p_dp tinyint(1) NOT NULL default '0',
    p_pp tinyint(3) NOT NULL default '0',
    PRIMARY KEY (p_id)
    ) TYPE=MyISAM;

    mit

    $update= "UPDATE tt_player SET p_rrate='$rrate' WHERE (p_id = '$uid') LIMIT 1";
    mysql_db_query($sql_name, $update) or die("Error");


    die werte $rrate und $uid sind richtig, wenn ich sie testweise davor mit echo ausgebe, ich bekomme auch nicht die fehlermeldung "Error"...
    hoffe damit kann jemand etwas anfangen und mir bei meinem problem helfen. Hab auf dem selben mysqlaccount sonst nur noch ein phpBB forum

  • #2
    Kommentier die Zeile mit mysql_db_query() mal aus und setzte stattdessen ein

    PHP-Code:
    echo "UPDATE tt_player SET p_rrate='$rrate' WHERE (p_id = '$uid') LIMIT 1"
    ein.
    Die Ausgabe kopierst du dann in die mySQL Konsole oder phpmyadmin und versuchst sie auszuführen.
    Wenns nicht geht, stimmt was nicht, mit der Query.
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Kommentar


    • #3
      prrate ist nur smallint das schon bedacht?
      Beantworte nie Threads mit mehr als 15 followups...
      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

      Kommentar


      • #4
        was soll überhaupt das LIMIT 1 am Ende des Update-Befehls? Da dein p_id ein autoincrement ist, gibt es ja sowieso nur maximal einen Datensatz, der die Bedingung p_id = '$uid' erfüllen kann.
        Ansonsten würde ich auch dem Feld mal ein Typ INT zuweisen.

        Kommentar


        • #5
          fakt ist, das das script manchmal den wert schreibt, manchmal nicht.... kann es 20x probieren.... 10x haut es hin, 10x schreibt er nichts rein... also die update zeile für sql sollte stimmen, werd das limit aber gleich mal rausschmeissen und testen...

          $rrate hat immer einen gerade zahlenwert zwischen 0 und 1800, smallint sollte daher groß genug sein(laut docu)

          hab gestern nacht dann noch eine lösung gefunden,
          der submitbutton der das auslöst hat 2x einen mouseovereffekt(sound und bild). ich hab gestern testweise das mit dem sound rausgeschmissen und nun klappt es immer....
          nur warum das mit sound nur manchmal klappt und ohne immer versteh ich nicht...
          das wav file wird ja nur dann abgespielt, wenn man mit der maus auf den button geht


          code des formbuttons mit sound und mousover:
          PHP-Code:
          echo '<bgsound src="#" id=music loop=1 autostart="true">';

          echo 
          "<a href=\"javascript:document.travel.submit()\" onMouseOver=\"document.all.music.src='".$sfx_b_over."';
          MM_nbGroup('over','travelto','images/b_travel_r.gif','images/b_travel_r.gif',1)\" onMouseOut=\"MM_nbGroup('out')\">
          <img name=\"travelto\" src=\"images/b_travel.gif\" border=\"0\" onLoad=\"\" width=\"100\" height=\"18\"></a>"

          Zuletzt geändert von BrainBug; 09.04.2002, 17:17.

          Kommentar


          • #6
            hmm

            außer dass du vor dem onMouseOver einmal "." (ist überflüssig, aber nicht falsch) zuviel hast, sieht eigentlich alles normal aus.

            Auf den smallint würde ich mich nicht verlassen und einfach einen normalen INT benutzen. Macht den Kohl auch nicht fett.

            Aber wenn ansonsten jetzt alles klappt, ist's ja prima.

            Kommentar


            • #7
              das "." hab ich fürs forum eingefügt, sonst wäre die seite noch breiter geworden

              habs jetzt auf INT gesetzt und das limit 1 raus
              aber das problem ist weiterhin unverändert...

              funktionieren tut es ja leider nur ohne den sound
              dh. wenn ich die 2 teile rausschmeisse:
              PHP-Code:

              echo '<bgsound src="#" id=music loop=1 autostart="true">'
              und
              PHP-Code:
              document.all.music.src='".$sfx_b_over."'

              Kommentar


              • #8
                und wenn du die Anweisung vom onMouseOver in einer JavaScript-funktion zusammenziehst und somit auslagerst? Bei mir hat schon oft nur die Hälfte richtig funktioniert, wenn in verschiedenen Tags zu viel JS direkt drin war. Vielleicht ein Versuch wert...

                Kommentar

                Lädt...
                X