2011-03-07 21 views
1

我遇到一些麻烦,下面的代码:不能与单选按钮值使用UPDATE查询

$selected_radiobutton = $_POST['themes']; 
echo " checked : ".$selected_radiobutton."<br/><br/>"; 

$sql = mysql_query("SELECT value FROM variable WHERE name = 'theme_default'"); 
$resultaat = mysql_fetch_assoc($sql); 

echo 'current theme: <b><big>' . $resultaat['value'] . '</big></b><br /><br />';  

if ($_POST["updateknop"]) { 

$sql = "UPDATE variable SET value='".$selected_radiobutton."' WHERE name = 'theme_default'"; 
if (!mysql_query($sql)) { 
    echo "failed"; 
} 
else { 
    echo "Query update: '".$selected_radiobutton."'"; 
} 


} 

,由于某种原因,所有的更新查询呢,是在空字符串中把数据库......难以使用变量两次吗?

有人可以帮我解决这个问题吗? :)

+0

回声 “检查” $ selected_radiobutton “

”。它回声是什么? – Gaurav 2011-03-07 08:56:19

+0

它显示单选按钮的选定值... – Michiel 2011-03-07 08:57:10

回答

1

你的无线按钮元素是这样的吗?

<form method="post" action="file.php"> 
... 
<input type="radio" name="themes" value="defaulttheme" /> 
... 
<input type="submit" name="updateknop" value="send" /> 
</form> 

为此,您的代码应该工作。

无论如何,你应该definitly转义您的输入之前执行查询! mysql_real_escape()可以帮助你!否则,您的脚本容易受到SQL注入的影响!

为MySQL查询另一个建议:也难逃字段名称与此字符:`

如果您使用保留字作为文件名没有该字符键一样,日志...你得到一个错误!

UPDATE `variable` SET `value` = '".mysql_real_escape($selected_radiobutton)."' WHERE `name` = 'theme_default';
0

没关系,理解了它自己:)

脚本的工作,但我一直按错了按钮。不管怎么说,还是要谢谢你!

0

请vardump $ selected_radiobutton,看到你实际上从$ _POST获取字符串 - 这将帮助我猜。