0

ユーザーがクリックしたリンク ($pagename) に応じて、mysql エントリのデータを表示するページがあります。ドロップダウン オプションが 1 のフォームで構成される、非常に基本的な評価システムを作成する方法を考えています。ユーザーがこの値を送信すると、現在ページにあるエントリの対応する 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>"

?>

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

「tblR​​ating」のテーブル構造は、ratingID、カクテルID、値、カウンター..

したがって、オプション値を対応する「cocktailID」の「値」フィールドに保存し、「1」をカウンター フィールドにポストする必要があります。

-どんな助けでも大歓迎です

4

1 に答える 1

1

このようなフォームを送信するときは、現在の ID を含めるだけです

           <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>

これにより、フォームの結果とともにIDが返され、その時点でカクテルIDが利用可能になります

    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
        }
    }
于 2012-05-03T06:19:21.203 に答える