将单选按钮值插入SQL

时间:2014-03-14 22:17:31

标签: php sql forms radio-button

制作一个简单的星级评分脚本。数据未插入SQL。我在表单动作中传递了一个“id”,与评级一致。我正在使用GET来检索这个值。我正在使用POST来插入单选按钮值。我已经测试了,网址正在传递id。该脚本运行完成。 SQL正在连接。

的index.html

    <form method="POST" action="rating.php?id=<?php echo $id; ?>">
      <fieldset class="rating">
          <legend>. . .</legend>
              <input type="radio" id="star3" name="starno" value="3" onclick="this.form.submit()"/>
                  <label for="star3" title="Meh">3 stars</label>
              <input type="radio" id="star2" name="starno" value="2" onclick="this.form.submit()"/>
                  <label for="star2" title="Kinda bad">2 stars</label>
              <input type="radio" id="star1" name="starno" value="1" onclick="this.form.submit()"/>
                  <label for="star1" title="Sucks big time">1 star</label>
      </fieldset>
    </form>

ratings.php

    <?php
    isset($_GET['id']);
    $con=mysqli_connect ("","","","");
    mysqli_query($con,"INSERT INTO ratings (storyidr, rank, entry_date) VALUES ('$_GET[id]','$_POST[starno]',now())");
    mysqli_close($con);
    header('Location: http://www.website.com/'); 
    ?>

SQL

    CREATE TABLE IF NOT EXISTS `ratings` 
    (
      `ratingid` int(11) NOT NULL AUTO_INCREMENT,
      `storyidr` varchar(11) NOT NULL,
      `rank` int(11) NOT NULL,
      `entry_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`ratingid`),
    UNIQUE KEY `ratingid` (`ratingid`)
    ) 
    ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='rating for stories' AUTO_INCREMENT=1 

2 个答案:

答案 0 :(得分:1)

您正在使用&#34;表单方法=&#34; post&#34;&#34; ,改为获得。

你的脚本正在寻找GET,但你正在使用POST,你的脚本不会插入数据库,除非GET是和id,它永远不会用于POST

答案 1 :(得分:1)

您正在设置:

$storyidr = $_POST['id']; 

但它实际上是在URL中传递的。因此你需要使用:

$storyidr = $_GET['id'];

形式&#39;方法&#39;不需要改变。

我查看了生成的sql,它现在包含所有输入。