Ap2000: php "Vote" per UPDATE Befehl ?

Auf Einer meiner Seiten (www.bashworld.de.vu) hab ich ein kleines Problem...

Wenn ihr auf "Einträge" klickt, so werden alle bisher eintragenen Chat-Logs angezeigt. Unterhalb des jeweiligen Chat-Logs wird auch die Bewertung angezeigt. Als Standard hab ich sie auf 1 gesetzt, sprich wenn man einen Eintrag anlegt (was über "Eintrag abschicken" möglich ist), so hat dieser automatisch eine Stimme bekommen (also Bewertung = 1).

Das Problem ist nun aba ich will, dass per einem kleinen einfachen "Vote-System" dieser Wert der in der MySQL-Tabelle als BEWERTUNG gespeichert wird entweder um Eines erhöht oder erniedrigt wird.

ich habe folgenden Befehl in zig Variationen (z.b. mit/ohne Anführungszeichen usw.) benützt:

--------------------------------------------------------------

$qry = "UPDATE BEWERTUNG = BEWERTUNG - 1" WHERE ID = '".$_GET['id']."'";

--------------------------------------------------------------

dann hab ich es noch so versucht:

--------------------------------------------------------------

$db = mysql_connect("localhost", "bashworld"," ***** ");

$qry = "SELECT * FROM logs WHERE ID = '".$_GET['id']."'";

$result = mysql_query($qry,$db);
   $row = mysql_fetch_row($result);
   $result = mysql_query($qry);

$wert = $row[4];

mysql_close();

$db = mysql_connect("localhost", "bashworld"," ***** ");

//Datenbank auswählen
   mysql_select_db("bashworld",$db);

// Bewertung Minus
   $qry = "UPDATE BEWERTUNG = $wert + 1 WHERE ID = '".$_GET['id']."'";

--------------------------------------------------------------

$row[ 4] ist der Wert der bei bereits BEWERTUNG drin steht. Also in diesem Fall ist er eben überall noch 1.

Und keine Angst, die id wird schon richtig mitgeliefert, an dem liegt also nicht.

Dann hab ich am Schluss der php Datei die den Wert erhöhen bzw. in der php Datei die ihn verkleinern soll auch noch folgendes:

--------------------------------------------------------------

echo "$result";

if($result)
   {
      echo "<center>";
      echo "Bewertung gezählt !<br>";
      echo "<a href='index.php'>Zurück</a>";
      echo "</center>";
   }

else
   {
      echo "<center>";
      echo "Es ist ein Fehler aufgetreten ! Versuch es noch einmal ! ";
      echo "<a href='index.php?option=anzeigen'>Zurück</a>";
      echo "</center>";
   }

--------------------------------------------------------------

... sprich wenn der Wert und der Vorgang ok waren, so wird eben angezeigt, dass es gut gelaufen ist, ansonsten wird gezeigt, dass ein Fehler aufgetreten ist.

Ein weiteres Prob ist, dass ich $result garned anzeigen lassen kann, was ja bedeutet, dass weiter Oben der Fehler sein muss.

Liegt also sehr wahrscheinlich in der Zeile mit dem UPDATE Befehl.

Der Wert BEWERTUNG hab ich in meiner MySQL Tabelle als mediumint angegeben, also dass es eine Zahl zwischen -40.000 und +40.000 ist. (ca. in dem Bereich)

Gesucht ist also eine Lösung, dass mit einer php-Datei dieser Wert erhöht wird bzw. um Eins verkleinert wird.;) Mit dem UPDATE Befehl oder anders ist egal, hauptsache es funzt.:)

yours Ap2000

  1. Hallo Ap2000!

    $qry = "UPDATE BEWERTUNG = BEWERTUNG - 1" WHERE ID = '".$_GET['id']."'";
    $qry = "UPDATE BEWERTUNG = $wert + 1 WHERE ID = '".$_GET['id']."'";

    Beides Mal ist die Syntax imho falsch.
    Lies doch mal in http://dev.mysql.com/doc/mysql/de/UPDATE.html nah, wie ein Update-Befehl aufgebaut sein muß.
    Wenn Du Dich daran hälst, klappt's vielleicht auch.
    (Weitere Links zum Thema:
      * http://www.dclp-faq.de/q/q-sql-lernen.html
      * http://www.little-idiot.de/mysql/mysql-122.html)

    $qry = "SELECT * FROM logs WHERE ID = '".$_GET['id']."'";

    Lies Dir am besten auch gleich mal http://www.dclp-faq.de/q/q-sql-select.html durch.

    MfG
    Götz

    --
    Losung für Dienstag, 27. Juli 2004
    Du sollst nicht ehebrechen. (2. Mose 20,14)
    Jesus aber richtete sich auf und fragte die Ehebrecherin: Hat dich niemand verdammt? Sie antwortete: Niemand, Herr. Und Jesus sprach: So verdamme ich dich auch nicht; geh hin und sündige hinfort nicht mehr. (Johannes 8,10-11)
    (http://www.losungen.de/heute.php3)
    1. Werden hier etwa Posts gelöscht !??
      Weil ich hab vorhin etwas geschrieben...

      yours Ap2000

      1. Hallo Ap2000!

        Werden hier etwa Posts gelöscht !??

        Es werden eher selten Postings gelöscht.
        Und zwar nur dann, wenn man es rechtfertigen kann. Siehe auch http://forum.de.selfhtml.org/faq/#Q-24.

        Aber ich kann Dich beruhigen, es wurde definitiv kein Posting von Dir gelöscht.
        Vielleicht hast Du auch nur die Vorschau gesehen und gedacht, es wäre schon gepostet? ... soll schon einigen so gegangen sein ... ;)

        MfG
        Götz

        --
        Losung für Mittwoch, 28. Juli 2004
        Ich hatte von dir nur vom Hörensagen vernommen; aber nun hat mein Auge dich gesehen. Darum spreche ich mich schuldig und tue Buße in Staub und Asche. (Hiob 42,5.6)
        Zuletzt von allen ist Christus auch von mir gesehen worden. (1. Korinther 15,8)
        (http://www.losungen.de/heute.php3)
        1. Hallo Ap2000!

          Werden hier etwa Posts gelöscht !??

          Es werden eher selten Postings gelöscht.
          Und zwar nur dann, wenn man es rechtfertigen kann. Siehe auch http://forum.de.selfhtml.org/faq/#Q-24.

          Aber ich kann Dich beruhigen, es wurde definitiv kein Posting von Dir gelöscht.
          Vielleicht hast Du auch nur die Vorschau gesehen und gedacht, es wäre schon gepostet? ... soll schon einigen so gegangen sein ... ;)

          MfG
          Götz

          Naja, was ich sagen wollte war, dass ich zufälligerweiße die Informationen zum Update-Befehl von der gleichen Seite wie du geschrieben hast habe.
          Weiß auch nicht genau, was falsch sein soll.

          yours Ap2000

          1. Hallo Ap2000!

            $qry = "UPDATE BEWERTUNG = BEWERTUNG - 1" WHERE ID = '".$_GET['id']."'";
            $qry = "UPDATE BEWERTUNG = $wert + 1 WHERE ID = '".$_GET['id']."'";

            Naja, was ich sagen wollte war, dass ich zufälligerweiße die Informationen zum Update-Befehl von der gleichen Seite wie du geschrieben hast habe.
            Weiß auch nicht genau, was falsch sein soll.

            Also, dann kopier ich den relevanten Teil mal eben hier rein, und vergleiche ihn mit Deinem Befehl:
            UPDATE [LOW_PRIORITY] [IGNORE] tabelle
                SET spalten_name1=ausdruck1, [spalten_name2=ausdruck2, ...]
                [WHERE where_definition]
                [LIMIT #]

            So, uns interessiert im Moment nur der grundsätzliche Aufbau, also reduzieren wir das Beispiel auf das für uns wesentliche zu:
            UPDATE tabelle
                SET spalten_name1=ausdruck1
                WHERE where_definition

            So, und fällt Dir nun ein Unterschied zu Deinen Befehlen oben auf?

            MfG
            Götz

            --
            Losung für Donnerstag, 29. Juli 2004
            Entheiliget nicht meinen heiligen Namen. (3. Mose 22,32)
            Gott hat Christus Jesus erhöht und hat ihm den Namen gegeben, der über alle Namen ist, dass in dem Namen Jesu sich beugen sollen aller derer Knie, die im Himmel und auf Erden und unter der Erde sind. (Philipper 2,9-10)
            (http://www.losungen.de/heute.php3)