2012-05-03 5 views
0

私は、ユーザがクリックしたリンク($ページ名)に応じて、mysqlエントリのデータを表示するページを持っています。私は非常に基本的な評価システムをどのように作成できますか? 1から5のドロップダウンオプションを持つフォームで構成され、ユーザーがこの値を送信すると、そのページに現在あるエントリの対応するIDにデータがポストされます。シンプルな評価システム。現在のエントリのIDを取得してテーブルに投稿する

<?php 
$pagename = $_GET['name']; 
$sql = "SELECT * FROM tblCocktail WHERE name = '$pagename' LIMIT 1"; 
/*$sql = sprintf(%sql, mysql_real_escape_string($pagename));*/ 
$result = mysql_query($sql); 
if(!$result) { 
    // error occured 
} 
$data = mysql_fetch_assoc($result); 
echo "<p class=\"paratitle\">".$data["name"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>"; 
echo "<p class=\"paratitle3\">".$data["howto"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>"; 
echo "<p class=\"paratitle2\">".$data["ingredient1"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>"; 
echo "<p class=\"paratitle3\">".$data["quantity1"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>"; 
echo "<p class=\"paratitle2\">".$data["ingredient2"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>"; 
echo "<p class=\"paratitle3\">".$data["quantity2"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>"; 
echo "<p class=\"paratitle2\">".$data["ingredient3"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>"; 
echo "<p class=\"paratitle3\">".$data["quantity3"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>"; 
echo "<p class=\"dateadded\">".$data["dateadded"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>"; 
?> 
         </div> 
        </div> 
        <div id="cont2"> 
         <div id="contentwrap"> 
        <form method="POST" action="addrating.php" > 
      <input type="hidden" name="cocktailID" value="<?=$data["id"]?>"> 
      <select id="ratinglevel" name="ratinglevel"> 
       <option></option> 
       <option>1</option> 
       <option>2</option> 
       <option>3</option> 
       <option>4</option> 
       <option>5</option> 
      </select> 
      <input type="submit" value="submit" /> 
      </form> 

addrating.php:

<?php 
mysql_select_db("mwheywood", $con); 

//insert cocktail details 
$sql="INSERT INTO tblRating (cocktailID, value, counter) 
VALUES 
('$_POST[id]','$_POST[ratinglevel]','1'"; 

if (!mysql_query($sql,$con)) 
    { 
    die('Error: you fail at life' . mysql_error()); 
    } 
echo "<p>Thanks for voting</p>" 

?> 

私は上記のコードでecho'dされているデータに「cocktailID」を介してリンクされているに評価を保存するテーブル。

と「tblR​​ating」のテーブル構造は次のとおりです。ratingID、cocktailID、値、カウンタ...

私はそのためのオプションの値は、「値」フィールドに、対応する「cocktailID」に保存したいです、カウンターフィールドに "1"が表示されます。

-anyヘルプが

+0

保存する値とテーブルフィールドはありますか? –

答えて

1

-matt高く評価されますが、この

  <form method="POST" action="addrating.php" > 
      <input type="hidden" name="cocktailID" value="<?=$data["id"]?>"> 
      <select id="ratinglevel" name="ratinglevel"> 
       <option></option> 
       <option>1</option> 
       <option>2</option> 
       <option>3</option> 
       <option>4</option> 
       <option>5</option> 
      </select> 
      </form> 

ようtehのフォームを送信するときだけこれがその後、その時点でフォームの結果と一緒にあなたのIDを返します。現在のIDが含まれます利用可能なcocktailIDを持っています

if (isset($_POST['cocktailID']) && isset($_POST['ratinglevel'])) 
     $sql = "INSERT INTO tblRating SET cocktailID = ".mysql_real_escape_string($_POST['cocktailID']).", value = ".mysql_real_escape_string($_POST['ratinglevel']).",counter = 1"; 
     $result = mysql_query($sql); 
     if(!$result) { 
      // error occured 
     } 
    } 
+0

良い答えは、サラパントリーのように挿入されたmysql_real_escape_stringに注意してください。 –

+0

は右のように見えます、私はecho'd cocktailID、でもデータベースに投稿していませんか? – MattHeywood

+0

"> $ data ["cocktailID"]でなければならないかもしれないが、そのデータセットのID列の名前を教えてください – Anigel

関連する問題