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 PAPER 和 LONG BOND PAPER(来自 items 的列 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 ());
}
4

1 回答 1

0

确实会是这样。

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

假设 itemprice 是价格的实际列。但是,这样做会使您的代码容易受到 mysql 注入的攻击。因此,在继续之前,请考虑阅读一下。

于 2013-10-17T18:26:27.823 回答