MYSQL Berechnung

  • PHP

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Loquax.

    MYSQL Berechnung

    Ich speichere in einer MYSQL Datenbank die Anzahl an abgegebenen Bewertungen und die Bewertungen (1-10).

    Wenn nun jemand mit meiner Anwendung eine neue Bewertung abgibt, erhöhe ich die Anzahl der Bewertungen um 1. Nun muss ich nur noch die aktuelle Bewertung berechnen.

    Die Formel ist: Alle Bewertungen addieren und dann durch die Anzahl der Bewertungen teilen.

    Beispiel: Bewertungen: 1, 8, 9, 5 => 23:4 => Bewertung: 5,75

    Wie mache ich das in PHP?

    Tabellenname: System
    Spaltennamen:
    -Bewertung (aktuelle Bewertung)
    -Bewertungen (Anzahl an Bewertungen)

    Auch würde ich mich über Ideen freuen, um zu verhindern, dass ein User mehrmals bewertet.

    Danke für eure Hilfe!


    Edit by Dodo:
    -> Topic verschoben (Grundlagen => weitere Programmiersprachen)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dodo“ ()

    In deinem "Startpost" schreibst du von PHP und SQL also stimmt das schon

    Aber zählst du da jetzt nicht einfach die Bewertung und die Anzahl an Bewertungen zusammen?

    Ich muss die Bewertung, die in eine Textbox eingegeben wird, zu der bisherigen Bewertung dazuzählen und dann durch die Anzahl der Bewertungen+1 teilen und in die Tabelle speichern.

    Wie geht das?

    Und was muss man für `summe` einfügen?
    Ach dachte du hast pro Bewertung eine Zeile in der Datenbank, so wie es normal auch üblich ist, bzw. ich machen würde. Wenn nur eine Zeile hast, naja dann machst es halt so

    SQL-Abfrage

    1. INSERT INTO `bewertung` SET `bewertung` = bewertung + 5, `anzahl` = anzahl + 1


    für den Fall das nun 5 als Bewertung eingegeben wurde, in PHP kommt da natürlich eine PHP Variable hin.
    Ich habe in meiner mysql datenbank für ein Produkt jeweils eine Zeile.

    Wenn eine neue Bewertung abgegeben wird, dann wird die aktuelle Bewertung mit der neuen Bewertung, die in eine Textbox eingegeben wurde, addiert und dann durch die Anzahl der Bewertungen + 1 (, da 1 neue Bewertung) geteilt.

    Wie macht man die Rechnung in PHP?

    $query = "UPDATE System SET `Bewertung` = (Bewertung + '$bewertung')/`Bewertungen`;

    Das funktioniert nicht

    hier mein VB.Net Code:

    nv.Clear()
    nv.Add("id", tvProduct.SelectedNode.Tag)
    nv.Add("bewertung", txtBewertung.Text)
    Dim result() As Byte = wc.UploadValues("...rateProduct.php?", "POST", nv)
    Dim resultstring As String = System.Text.Encoding.ASCII.GetString(result)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Loquax“ ()

    Da fehlt noch das Where für die einzigartige ID, um das jeweilige Produkt zu identifizieren.

    Bewertung = aktuelle Bewertung
    $bewertung = vom User in Textbox eingetragene Bewertung, die addiert werden muss
    Bewertungen = Anzahl an gesamten Bewertungen


    SQL-Abfrage

    1. $query = "UPDATE Tabelle SET `Bewertung` = (Bewertung + '$bewertung')/Bewertungen WHERE `ID`='".$id."'";



    Das funktioniert aber leider nicht. Das Rating bleibt immer auf dem Standard (0). Weißt du wieso?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Loquax“ ()