不存储单选按钮的评级

时间:2013-12-15 08:16:02

标签: php mysql database radio-button

我有一个评论BOX,它有5个字段,一个是姓名,电子邮件,RATE,评论,articleid。

费率字段是一种无线电类型,它有5个单选按钮,值为1,2,3,4,5。如果有人点击率我的产品,它应该保存数据库中的额定值。我在数据库中使用RATE作为INT,它在其中存储0,如果我在数据库中使用RATE作为TEXT,它在数据库中存储“on”。它不存储像1,2,3,4,5这样的评级值。

我的表单代码

<form action="manage_comments.php" method="post">
<span class="rating">
<input type="radio" class="rating-input" id="rate" name="rate" value="1">
<label for="rating-input-1-5" class="rating-star"></label>

<input type="radio" class="rating-input" id="rate" name="rate" value="2">
<label for="rating-input-1-4" class="rating-star"></label>

<input type="radio" class="rating-input" id="rate" name="rate" value="3">
<label for="rating-input-1-3" class="rating-star"></label>

<input type="radio" class="rating-input" id="rate" name="rate" value="4">
<label for="rating-input-1-2" class="rating-star"></label>

<input type="radio" class="rating-input" id="rate" name="rate" value="5">
<label for="rating-input-1-1" class="rating-star"></label>

</span>

<input type='hidden' name='articleid' id='articleid' value='<?php echo $_GET["id"]; ?>' />
<input type="submit" name="submit" value="Publish Now"></p>

</form>

我的PHP代码

<?php
if( $_POST ) 
{
$con = mysql_connect("localhost","asfi","asfi");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("aw-tech", $con);

$post_rate =  (isset($_POST['rate'])) ? $_POST['rate'] : '';

$articleid =  (int)isset($_GET['id']);
if(!is_numeric($articleid))
die('invalid article id');

$sql="INSERT INTO `aw-tech`.`comment` (cid, name, email, website, comment, timestamp,      rate, articleid) VALUES (NULL, '$_POST[name]', '$_POST[email]', '$_POST[website]', '$_POST[comment]', CURRENT_TIMESTAMP, '$post_rate', ".$articleid.")";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Comment Saved";

mysql_close($con);
} 
?>

其次我的articleid保存总是0 ..我的页面ID是.php?id = 49,它是49但是如果我对该页面发表评论,它会将我的文章ID保存为0。

articleid&amp; rate在数据库中都是INT,我在数据库中也使用它们作为TEXT但是没有用

3 个答案:

答案 0 :(得分:1)

我想我发现了你的问题。将表单声明更改为:

<form action="manage_comments.php" method="post">

删除行:

<input type='hidden' name='articleid' id='articleid' value='<?php echo $_GET["id"]; ?>' />

来自以下的PHP代码:

$post_rate =  (isset($_POST['rate'])) ? $_POST['rate'] : '';
$articleid =  (int)isset($_GET['id']);

为:

$post_rate = (isset($_POST['rate'])) ? $_POST['rate'] : 0;
$articleid = (int)isset($_GET['id']) ? $_GET['id'] : 0;

对于调试,在$sql变量之后添加此内容并在此处插入注释:

print_r($_GET);
print_r($_POST);
echo $sql;

希望它有效。

答案 1 :(得分:0)

当你发布表格时,你把:manage_comments.php 所以“id”会丢失!

您可以执行以下操作:manage_comments.php?id=<?php=$_GET[id]?>

或 提交表格后 使用$_POST[articleid]而不是$_GET['id']

答案 2 :(得分:0)

我认为它应该是

$ post_rate =(isset($ _ POST ['rate']))? $ _POST ['rate']:'';

$ articleid =(int)isset($ _ POST ['articleid']);