2013-10-17 143 views
0

我对PHP和MySQL相当陌生,所以原谅我,如果我完全错了。我正在制作印刷余额申请表,下面的代码是其中的一部分。基于单选按钮值从数据库检索数据

$command="SELECT itemname FROM items"; 
$results = mysql_query($command); 
while($row = mysql_fetch_assoc($results)) 
{ 
    foreach ($row as $key => $value) { 
      print "<input type='radio' name='itemtype' value='$value'>".$value."</input><br />"; 
    } 
} 

这这里是假想其中用户SHORT BOND纸和LONG BOND PAPER(从物品列ITEMNAME)之间进行选择的价格印刷形式。这些选项显示为单选按钮。它的工作,但现在我坚持的问题是能够获取价格插入各自的行。由于itemname及其价格都是用户输入到数据库中的,因此我不应该将其特定的价格声明到代码本身中,并且应该能够从数据库中检索它。我希望能够根据用户点击提交后选择的项目获取价格,因为我需要这样做,以便在稍后与页面数相乘时计算打印价格。

我认为这绝对有可能,但我不太清楚如何。从理论上讲,它将沿着SELECT itemprice FROM items WHERE itemname = $ value的行但哈,我不认为它的工作方式。


解决方案编辑:这里是完整的解决方案供参考。 $ compute只是一个样本来测试它是否工作,而5是一个将被输入的样本数量的页面。

if ($command = mysql_query("SELECT `itemprice` FROM `items` WHERE `itemname` LIKE '" . mysql_escape_string($_POST['itemtype']) . "'")) 
{ 
while($row = mysql_fetch_assoc($command)) 
{ 
$compute = $row['itemprice'] * 5; 
echo $compute; 
} 
} 
else 
{ 
echo (mysql_error()); 
} 
+0

你为什么不尝试之前? – Manolo

回答

0

确实是这样的。

SELECT itemprice FROM items WHERE itemname = $_POST['itemtype'] 

假设itemprice是价格的实际价格。 HOwever,这样做,使你的代码易受mysql注入的影响。所以在你继续前行之前,请考虑阅读一下。

+0

是的,我有处理mysql注入所需的东西。无论如何,代码中会出现“解析错误:语法错误,意外”(T_ENCAPSED_AND_WHITESPACE),期待标识符(T_STRING)或变量(T_VARIABLE)或编号(T_NUM_STRING)“的错误。我能够在网上查找解决方案,并能够修复它。非常感谢你的回复。我知道我正在接近,但厌倦了在圈子里试图弄清楚。该指导非常感谢^^ –

相关问题