Doofes Problem

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

  • Doofes Problem

    Hi, hab nur ein kleines leichtes Problemchen, ist schnell gelöst, versprochen

    Ich habe ein Bewertungssystem für meine Tutorials gemacht. Dazu folgende Funktion:



    PHP-Code:
    function rate_tut($tutid,$points) {
        global 
    $user_id$db// datenbank connection und die id aus der session lesen
        
    $rating $db->query_first("SELECT rating, rated, ratingcount FROM www_tut WHERE tutid=".$tutid); // bewertung, anzahl der Bewertungen und die userids, wer schon bewertet hat holen
        
    $rate_all $rating[rating]*$rating[ratingcount]; // durchschnitt mal Anzahl
        
    $rate_neu $rate_all $points//neue Punkte huinzufügen
        
    $rate_neuneu $rate_neu / ($rating[ratingcount]+1); // DUrchschnitt bilden
        
    $rated $user_id.",".$rating[rated]; // die userid bei rated hinzufügen
        
    $db->query("UPDATE www_tut SET rating = ".$rating_neuneu.", ratingcount+1, rated = '".$rated."' WHERE tutid = ".$tutid); // update
        
    echo $db->error(); // Fehler ausgeben

    Also er updatet nichts und ich erhalte folgende Fehlermeldung:

    1064 : 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 ' ratingcount+1, rated = '1,' WHERE tutid = 1' at line 1

    Ich finde den verfluchten Fehler nicht... ihr?

  • #2
    sollte damit erledigt sein:
    PHP-Code:
    $db->query("UPDATE www_tut SET rating = ".$rating_neuneu.", ratingcount=ratingcount+1, rated = '".$rated."' WHERE tutid = ".$tutid); // update 
    Kissolino.com

    Kommentar


    • #3
      Hab ich auch schon vorher ausprobiert, hier die Fehlermeldung:

      1064 : 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 ' ratingcount=ratingcount+1, rated = '1,' WHERE tutid = 1' at li

      PS: Die Feldnamen sind korrekt, die Modi auch, also rated ist z.B. kein int Feld

      Kommentar


      • #4
        lass dir die zusammengesetzte query mal per echo ausgeben und schau mal was drin steht

        wenn $rated den inhalt '1,' hat (sollte das nicht '1,123' oder so aussehen?) ... könnte vorher schon was schief laufen ...
        Kissolino.com

        Kommentar


        • #5
          Original geschrieben von OliOli
          Hab ich auch schon vorher ausprobiert, hier die Fehlermeldung:

          1064 : 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 ' ratingcount=ratingcount+1, rated = '1,' WHERE tutid = 1' at li

          PS: Die Feldnamen sind korrekt, die Modi auch, also rated ist z.B. kein int Feld
          ja und dann erklär mir mal was ratingcount=ratingcount+1 bewirkt?
          hier ist weder ne variable noch eine zahl im spiel -> syntaxerror.
          wie wärs damit:
          PHP-Code:
          $count $ratincount++;
          //und dann in deiner sqlabfrage
          ...ratincount='".$count."'... 
          hoffe das wars

          Kommentar


          • #6
            hm, war ein schreibfehler in den Variablen, einmal hab ich rate_neuneu und einmal rating_neuneu. Jetzt gehts, danke!

            Kommentar


            • #7
              Original geschrieben von jochenj
              ja und dann erklär mir mal was ratingcount=ratingcount+1 bewirkt?
              hier ist weder ne variable noch eine zahl im spiel -> syntaxerror.
              wie wärs damit:
              PHP-Code:
              $count $ratincount++;
              //und dann in deiner sqlabfrage
              ...ratincount='".$count."'... 
              hoffe das wars
              nö, was du da aufziehst ist blödsinn, da mysql int-felder auf diese art aufaddieren kann ... mit anderen worten, bei deinem weg brauchst du 2 db-abfragen (1x select, 1x update) mit 'feldname=feldname+1' reicht eine abfrage ... in dem fall ^^ ist es zwar wurscht, weil das select sowieso läuft, aber ...
              Kissolino.com

              Kommentar


              • #8
                ok, war mein fehler hab in der doku nicht richtig gelesen, bzw. diese art von increment übersehen, wieder was gelernt und sei dir gewiss, dieser fehler kommt nicht mehr vor. man will sich ja weiterentwickeln

                PS. bitte antworte nicht mit "dein Wort in...."

                Kommentar


                • #9
                  tröste dich ... ich lern' auch täglich was dazu
                  Kissolino.com

                  Kommentar

                  Lädt...
                  X