Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Downloadbewertungssystem

  1. #1
    Nyctalus Noctula
    Gast

    Standard 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:
    Code:
    <form action="?i=$rims&#91;'name'&#93;&r=$rims&#91;'rate'&#93;&n=$rims&#91;'numbrate'&#93;" method="GET">
    
    
    rate these rims
    
    		<input type="radio" name="op" value="1">1
    		<input type="radio" name="op" value="2">2
    		<input type="radio" name="op" value="3">3
    		<input type="radio" name="op" value="4">4
    		<input type="radio" name="op" value="5">5
    
    		<input type="submit" value=" Rate ">
    </form>
    Den Namen des Downloads brauche ich ja um die richtige Zeile der Tabelle zu editieren. rate ist die Gesamtpunktzahl, numbrate die Zahl der Bewertungen.

    Code:
    if &#40;isset&#40;$_GET&#91;'op'&#93;&#41;&#41;
     &#123;
      $rate=&#40;$r + $_GET&#91;'op'&#93;;
      $numbrate=$_GET&#91;'n'&#93;+1;
      //write new values in db
      $result=mysql_query&#40;"UPDATE rims SET rate=".$rate." numbrate=".$numbrate." WHERE name=".$_GET&#91;'i'&#93;.""&#41;;
    
      echo
        "<table border=\"4\" align=\"center\">",
        "<tr><td width=\"610\">",
        "Thanks for your rating
    ",
        "<a href=\"rims.php3\">Back to rims</a>",
        "</td></tr></table>";
     &#125;
    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
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Nyctalus Noctula
    Gast

    Standard

    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.

  3. #3
    Kaiser(in)
    Registriert seit
    09.12.2005
    Alter
    29
    Beiträge
    2.496
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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!

  4. #4
    Nyctalus Noctula
    Gast

    Standard

    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).
    Code:
    <form action="rimseg.php3" method="POST">
        
    
    rate these rims
    
             <input type="hidden" name="i" value="<?=$rims&#91;'name'&#93;;?>">
             <input type="hidden" name="r" value="<?=$rims&#91;'rate'&#93;;?>">
             <input type="hidden" name="n" value="<?=$rims&#91;'numbrate'&#93;;?>">
             <input type="radio" name="op" value="1">1
    	<input type="radio" name="op" value="2">2
    	<input type="radio" name="op" value="3">3
    	<input type="radio" name="op" value="4">4
    	<input type="radio" name="op" value="5">5
    
    	<input type="submit" value=" Rate ">
        </form>
    Besagte Datei, die die Datenbank aktualisieren soll sieht so aus. Das schreiben in die Datenbank klappt leider noch immer nicht. Wo liegt mein Fehler?

    Code:
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="css_wr2.css">
    <title>Rims</title>
    </head>
    <body>
    
    <?php
    //connect to db
    $db=mysql_connect &#40;"localhost", "", ""&#41;;
    mysql_select_db &#40;"result"&#41;;
    
    if &#40;isset&#40;$op&#41;&#41;
     &#123;
      $rate=$r + $op;
      $numbrate=$n+1;
    
      //write new valees in db
      $result=mysql_query&#40;"UPDATE rims SET rate=".$rate." numbrate=".$numbrate." WHERE name=".$i""&#41;;
    
      echo
        "<table border=\"4\" align=\"center\">",
        "<tr><td width=\"610\">rate&#58;",
        $rate,
        "
    # ratings",
        $numbrate,
        "
    name&#58;",
        $i,
        "
    ",
        "
    Thanks for your rating
    ",
        "<a href=\"rims.php3\">Back to rims</a>",
        "</td></tr></table>";
     &#125;
    
    else
        echo
        "<table border=\"4\" align=\"center\">",
        "<tr><td width=\"610\">",
        "
    An error occured
    ",
        "<a href=\"rims.php3\">Back to rims</a>",
        "</td></tr></table>";
    ?>
    
    </body>
    </html>

  5. #5
    Kaiserliche Hoheit Avatar von No0ob
    Registriert seit
    02.01.2006
    Ort
    Nähe Frankfurt
    Beiträge
    1.500
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Und was ist egtl. das hier?
    Code:
    $rate=&#40;$r + $_GET&#91;'op'&#93;;
    1. Du brauchst die Klammer nicht
    2. Wenn du eine Klammer oeffnest, dann schliesst man sie auch wieder.

  6. #6
    König(in) Avatar von NyctalusNoctula
    Registriert seit
    07.08.2006
    Beiträge
    1.316
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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&#40;"UPDATE rims SET rate=".$rate." numbrate=".$numbrate." WHERE name=".$i.""&#41;;
    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.

  7. #7
    Kaiser(in)
    Registriert seit
    09.12.2005
    Alter
    29
    Beiträge
    2.496
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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!

  8. #8
    Teeny
    Registriert seit
    27.07.2006
    Beiträge
    49
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hallo,

    ich tippe mal $i ist eine Zeichenkette =>
    $result ....... WHERE name='".$i."'");

    Grüße
    Methusalix

  9. #9
    König(in) Avatar von NyctalusNoctula
    Registriert seit
    07.08.2006
    Beiträge
    1.316
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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?

  10. #10
    Teeny
    Registriert seit
    27.07.2006
    Beiträge
    49
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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: www.php.net/function

    Grüße Methusalix

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •