Downloadbewertungssystem

  • bin blutiger php Anfänger und möchte mich nun an einem Downloadbewertungssystem versuchen.
    Meine Downloads möchte ich in einer Datenbank verwalten, was auch wunderbar funktioniert. Unter jedem Downlaod wir nun dieses Fenster angezeigt:

    Den Namen des Downloads brauche ich ja um die richtige Zeile der Tabelle zu editieren. rate ist die Gesamtpunktzahl, numbrate die Zahl der Bewertungen.

    Nur leider tut sich nichts, wenn ich bewerten möchte. Ich vermute, dass ich die Werte nciht richtig übergeben habe.

    PS: Habe mich vor Stunden registriert aber ncoh keine Aktivierungsmail erhalten

  • Im 2. Quelltext fehlte natürlich ein $_GET['r'] in der 3. Zeile.
    Habe noch ein paar Tests gemacht. Der bewertete Wert (op) kommt scheinbar richtig an. Aber der Name, den ich mit i übergebe leider nicht. Woran kann das liegen?
    Das würde auch erklären, warum sich nichts tut, da so ja nicht richtig in die DB geschrieben werden kann.

  • ich würde die namen etc auch über post übergeben mit <input type="hidden" > kannst du ein verstecktes feld machen (ist nur im quelltext sichtbar)

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Bei method =post muss man doch an eine andere Datei übergeben, oder?
    Ich hab das jetzt so gemacht. Alle Werte werden richtig übergeben (Hab sie in der rimseg.php3 anzeigen lassen).

    Besagte Datei, die die Datenbank aktualisieren soll sieht so aus. Das schreiben in die Datenbank klappt leider noch immer nicht. Wo liegt mein Fehler?

  • Und was ist egtl. das hier?

    Code
    $rate=($r + $_GET['op'];


    1. Du brauchst die Klammer nicht
    2. Wenn du eine Klammer oeffnest, dann schliesst man sie auch wieder.

  • Stimmt, aber den oberen Quelltext hab ich längst überarbeitet. Er ist nicht mehr aktuell. Meine Frage bezeiht sich inzwischen nur noch auf den 2. Quelltext im vorigen Beitrag. Konkret geht es nur noch um diese Zeile

    Code
    //write new values in db
      $result=mysql_query("UPDATE rims SET rate=".$rate." numbrate=".$numbrate." WHERE name=".$i."");

    Ich weiß inzwischen ja auch, dass die Werte per post richtig übergeben werden, nur in die db wird nicht geschrieben.

    Ich habe zwar self php, komme damit aber nicht zurecht. Daraus habe ich mir die Syntax fürs updaten der db abgeleitet, weiß aber eben nicht ob es überhaupt die richtigen Befehle sind.

  • mysql_query("UPDATE rims
    SET rate = '".$rate."',
    numbrate = '".$numbrate."'
    WHERE name = '".$i."'");

    e: sieht zwar etwas komisch aus, muss aber so :
    name = ' (<-- hochkomma) ". (<-- variable kommt) $i ." (<-- variable ende) ' (<-- hochkomma wieder zu) " (<-- für den gesamten befehl anführungszeichen wieder zu)
    e2: @mthusalix: ich glaube schon dass das prinzip richtig ist, schau mal meins an, ich glaube das sollte passen

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Ja, $i ist eine Zeichenkette. Leider funktioniert es immer noch nicht.
    Wie gesagt in meinem 3. Beitrag findet ihr den kompletten Quelltext der 2. Seite, die die neuen Werte in die Datenbank einfügen soll.

    hier der Link zur Seite:
    http://mitglied.lycos.de/sirtobiiv/wr2/rims.php3
    Hier könnt ihr auch sehen, dass die Werte übergeben werden.

    Nochwas: Falls mein System mal funktioniert, wie kann ich Zahlen z.B: auf 2 Nachkommastellen formatieren?
    Kennt jemand ein Befehlsverzeichnis bei dem man sowas nach Stichwörtern suchen und finden kann?

  • Hallo,

    der Query müßte soweit funktionieren...
    wie ist deine TABLE aufgebaut?

    Für jedes CHAR /VARCHAR müssen die Hochkommas gesetzt werden.
    INT-Values funktionieren ohne....

    ToDo's
    Query ausgeben lassen via echo
    CnP in phpmyadmin (zum Bleistift) :)
    Fehlermeldung analysieren oder posten

    Wenn der Query in phpmyadmin funktioniert dann mysql_connect prüfen

    So müßte das Problem zu lösen sein.


    Referenz: http://www.php.net/function

    Grüße Methusalix