首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从交叉行和列的数据库中选择一个价格

问从交叉行和列的数据库中选择一个价格
EN

Stack Overflow用户
提问于 2014-03-05 11:20:20
回答 2查看 97关注 0票数 3

首先,我对PHP编程很陌生。

为了开发一个webshop (windows百叶窗),我尝试创建一个价格计算表,其中客户必须指定窗口的高度和宽度。表格必须从数据库中选择正确的价格。

这是示例数据库的样子的图片:

​

​

当客户选择一个高度(第1列)和宽度(第1行)时,脚本必须查找两个相交的价格(在本例中为90)。

​

​

不幸的是,我找不到任何关于这个主题的教程、参考资料或任何东西。

有人能帮我,通过提供我的教程,代码,或任何有用的链接吗?

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-05 11:29:38

查询应该如下所示:

代码语言:javascript
复制
$width = "20";
$height = 30;

query("SELECT `" . quote($width) . "` FROM table WHERE Hoogte = " . quote($height));

其中,query和quote是用于查询数据库和转义数据的mysql方法。

如果Hoogte是一个字符串,则必须像这样修改查询:

代码语言:javascript
复制
query("SELECT `" . quote($width) . "` FROM table WHERE Hoogte = '" . quote($height) . "'");

编辑

这个查询将返回您所需的内容,但是您肯定应该花时间优化您的表。看看正常化。

一张可能的表格可以是:

代码语言:javascript
复制
price
-------
id
value
height
width

然后,您的查询将如下所示:

代码语言:javascript
复制
query("SELECT value FROM price WHERE height = " . quote($height) . " AND width = " . quote($width));

这样您就可以添加新的高度和宽度值,而不需要更改表!

票数 7
EN

Stack Overflow用户

发布于 2014-03-05 11:32:39

因为这个原因,我想你可能有两张不同的桌子。

但就目前而言,我可以建议如下:

首先,让我们得到所需的大小。这意味着表中的第一个大小是'10‘。因此,我们在列'10‘中搜索’30‘的值:

代码语言:javascript
复制
$q = mysql_query("SELECT * FROM tbl_name WHERE 10 = '30';");

一旦完成,我们需要从那一行得到结果。我们不需要任何其他列的号码,而不是“60”,对吗?因此,我们试图从“60”栏中得到一个结果,如下所示:

代码语言:javascript
复制
$res = mysql_fetch_array($q);
$resultForColumn = $res['60'];

我猜用户可能会选择60以外的东西,所以您可以随时更改它:

代码语言:javascript
复制
$i = $_POST['UserChosedSize']; // Do not forget to sanitize it, if you have something like this;
$resultForColumn = $res[$i];

希望这能有所帮助。

UPD:也许,Tobias先生写得对,他的例子更快更容易。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22196238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档