Daten werden nicht gespeichert

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Daten werden nicht gespeichert

    Hi, ich bins wieder
    Bin übrigens bis jetzt sehr zufrieden und glücklich über die Hilfe die ich hier bekommen habe, vielen Dank dafür

    Zu meinem neuen Problem:
    Bei manchen SQL Anfragen werden die Daten einfach nicht gespeichert, bei anderen schon. Es kommt keine Fehlermeldung, es scheint alles zu klappen, aber die Daten werden nicht eingetragen..

    Hier ein Beispiel (Es geht um eine Bewertung):

    Das Formular:

    PHP Code:
    <form action="index.php?s=creation&id=<?echo $cid?>&add=vote" method="post">
                                <select name="vote">
                                    <option value="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                    <option value="7">7</option>
                                    <option value="8">8</option>
                                    <option value="9">9</option>
                                </select>
        <input type=submit id="settings_box_vote" name="submit" value="Vote">
        </form>

    Der Insert Code:
    PHP Code:
    if($_GET["add"] == "vote")
         { 
              if (
    $_POST["vote"] != "")
              {
          
                      
    $sql_vote "INSERT INTO votes (from, stars, cid)
                      VALUES ('"
    .$username."', '".$_POST["vote"]."', '".$cid."')";
                      
    mysql_query($sql_vote);
                      echo 
    "Vote eingetragen";
              }
              else
              {
                  echo 
    "Kein Vote angegeben";
              }
        } 
    Die Datenbank sieht so aus:

    id int(30) Nein Kein AUTO_INCREMENT from varchar(30) latin1_swedish_ci Nein Kein
    stars varchar(3) latin1_swedish_ci Nein Kein
    cid varchar(30) latin1_swedish_ci Nein Kein
    deleted varchar(3) latin1_swedish_ci Nein 0

    Hab ein Bild angehängt


    Ich hab mir den Code jetzt seit Tagen angeschaut, aber ich komm nicht auf den Fehler

    Ich hoffe jemand von euch findet ihn, vielen Dank im Vorraus
    Attached Files
    Last edited by Spunk95; 19-08-2010, 19:20.

  • #2
    Wenn der INSERT fehl schlägt, meldet MySQL einen Fehler. Du aber ignorierst dieses.
    Dein Code ist (höchstwahrscheinlich) anfällig für SQL Injections.
    Wenn du die unterbindest, dann sollte auch das Speichern zuverlässig klappen.

    Tipp:
    mysql_error()
    mysql_real_escape_string()
    Wir werden alle sterben

    Comment


    • #3
      Originally posted by combie View Post
      Wenn der INSERT fehl schlägt, meldet MySQL einen Fehler. Du aber ignorierst dieses.
      Dein Code ist (höchstwahrscheinlich) anfällig für SQL Injections.
      Wenn du die unterbindest, dann sollte auch das Speichern zuverlässig klappen.

      Tipp:
      mysql_error()
      mysql_real_escape_string()
      Danke für die schnelle Antwort, habs keider noch nicht ganz verstanden
      Soll ich noch ne if Anfrage einbauen, für denn Fall, dass es Fehlschlägt? Die beiden Tipps kenn ich nicht so gut, hab ich noch nice benutzt Aber ich denke mal du meinst es so oder?

      PHP Code:
      if (!isset ($sql_vote)){
       echo 
      mysql_error($sql_vote);

      Last edited by Spunk95; 19-08-2010, 19:41.

      Comment


      • #4
        PHP Code:
        if (!isset ($sql_vote)){ 
         echo 
        mysql_error($sql_votes); 

        Quatsch!

        Warum schaust du nicht mal ins Handbuch?
        Wir werden alle sterben

        Comment


        • #5
          Hab grade in das PHP Handbuch hier geschaut (oder welches meinst du?)... Aber da hab ich dazu nichts gefunden. Ich weiß auch nicht genau wonach ich suchen soll
          Find ich den Fehler nun wenn ich ihn ausgeben lasse oder anders?

          Comment


          • #6
            Was sagt das Handbuch zu mysql_query() ?

            Richtig, es liefert bei einem erfolgreichen Insert True und bei einem fehlgeschlagenen False!
            Prüfe das!
            Nutze das!
            Lasse dir im Fehlerfall den Fehler mit mysql_error() zeigen.

            mysql_real_escape_string() mittlerweile eingebaut?
            Nein?
            Warum nicht?
            Tue das.

            Find ich den Fehler nun wenn ich ihn ausgeben lasse
            Solange du das ignorierst, wirst du ihn nicht finden.
            Wir werden alle sterben

            Comment


            • #7
              Die Fehlermeldung:
              You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from, stars, cid) VALUES ('Spunk', '1', '3')' at line 1

              mysql_real_escape_string() werd ich mir jetzt durchlesen, also was das ist
              Danke

              Comment


              • #8
                near 'from
                from ist ein reserviertes Wort!
                Siehe: "SELECT bla [COLOR="#ff0000"]FROM[/COLOR] blub"

                Es ist also keine gute Idee dieses Wort als Spaltennamen zu verwenden. MySQL ist allerdings gnädig und erlaubt es den Begriff in Backticks zu setzen.

                mysql_real_escape_string() werd ich mir jetzt durchlesen, also was das ist
                Ja, das solltest du tun!
                Und nicht nur lesen, [COLOR="#ff0000"]sondern auch einsetzen![/COLOR]
                Last edited by combie; 19-08-2010, 20:19.
                Wir werden alle sterben

                Comment


                • #9
                  Du bist ein Held!

                  Hab mysql_real_escape_string() jetzt eingebaut und vor allem from in from_user umbenannt und jetzt funktioniert es

                  Vielen vielen Dank

                  Comment

                  Working...
                  X