制作一个简单的星级评分脚本。数据未插入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
答案 0 :(得分:1)
您正在使用&#34;表单方法=&#34; post&#34;&#34; ,改为获得。
你的脚本正在寻找GET,但你正在使用POST,你的脚本不会插入数据库,除非GET是和id,它永远不会用于POST
答案 1 :(得分:1)
您正在设置:
$storyidr = $_POST['id'];
但它实际上是在URL中传递的。因此你需要使用:
$storyidr = $_GET['id'];
形式&#39;方法&#39;不需要改变。
我查看了生成的sql,它现在包含所有输入。