首先,我是PHP编程的新手。
为了开发网上商店(窗帘),我正在尝试创建一个价格计算表单,客户必须指定窗口的高度和宽度。表单必须从数据库中选择合适的价格。
这是示例数据库的样子:
当客户选择高度(第1列)和宽度(第1行)时,脚本必须查找两者相交的价格(在此示例中为90)。
不幸的是,我找不到任何有关此主题的教程,参考资料或其他内容。
有人可以通过向我提供教程,代码或任何有用的链接来帮助我吗?
提前致谢!
答案 0 :(得分:7)
查询应如下所示:
$width = "20";
$height = 30;
query("SELECT `" . quote($width) . "` FROM table WHERE Hoogte = " . quote($height));
query
和quote
是您用于查询数据库和转义数据的mysql方法。
如果Hoogte
是一个字符串,则必须改变查询,如下所示:
query("SELECT `" . quote($width) . "` FROM table WHERE Hoogte = '" . quote($height) . "'");
修改强>
此查询将返回您需要的内容,但您绝对应该花时间优化表格。看看规范化。
可能的表格如下:
price
-------
id
value
height
width
然后您的查询将如下所示:
query("SELECT value FROM price WHERE height = " . quote($height) . " AND width = " . quote($width));
使用此功能,您可以添加新的高度和宽度值,而无需更改表格!
答案 1 :(得分:-1)
嗯,我想你可能因为这个原因而有两个单独的表。
但目前我可能会提出以下建议:
首先,让我们得到所需的尺寸。这意味着表中的第一个尺寸是“10”。因此,我们在列'10'中搜索值'30':
$q = mysql_query("SELECT * FROM tbl_name WHERE 10 = '30';");
完成后,我们需要从该行获取结果。我们不需要任何其他列的数字而不是'60',对吗?所以,我们试图从列'60'得到一个结果,如下所示:
$res = mysql_fetch_array($q);
$resultForColumn = $res['60'];
我猜用户可能会选择60以外的其他内容,因此您可以随时更改它:
$i = $_POST['UserChosedSize']; // Do not forget to sanitize it, if you have something like this;
$resultForColumn = $res[$i];
希望这有帮助。
UPD:也许Tobias Kun先生写得对,他的榜样更快更容易。