0

我正在尝试为预订公司创建定价系统,我有一个充满价格的数据库表。典型的行如下所示:

priceID  |  manufac  |  model  |  janDay  | janWeek  |  febDay  |  febWeek  |  etc etc
--------------------------------------------------------------------------------------
1        |Chevrolelt |  Matiz  |  40.00   |  133.00  |  40.00   |  133.00   |  etc etc

基本上我有一个变量:

$startmonth

这个变量是由我的代码确定月份设置的,并根据它的编号为其分配一个值。在这种情况下,让我们假设它已经完成并获得了值:

$startmonth = 'febWeek';

然后我有另一个查询来找出汽车的型号,我已经对此进行了测试,它返回了型号,所以我们知道:

$model = 'Matiz';

然后我执行另一个查询来获得价格:

$getprice = mysql_query("SELECT '".$startmonth."' FROM prices WHERE model = '".$model."' ");
while($ppdrow = mysql_fetch_assoc($getprice)) {

   $priceperday = $ppdrow;

}

我已经尝试了很多方法这个查询,但我总是以错误或不受欢迎的结果告终。什么时候应该返回133.00

它实际返回的内容:

( [2] => 2 )

我可能正在做一些非常愚蠢的事情,但是谁能告诉我什么?

4

2 回答 2

3

你可以试试这个

$getprice = mysql_query("SELECT ".$startmonth." FROM prices WHERE model ='".$model."'   ");
while($ppdrow = mysql_fetch_assoc($getprice)) {

 $priceperday = $ppdrow[$startmonth];

}
于 2013-02-27T09:30:17.380 回答
2

试试这个查询:

$getprice = mysql_query("SELECT `".$startmonth."` FROM prices WHERE model = '".$model."' ");

注意在单引号位置的反引号(列名周围)。

至于 while 循环,您正在尝试设置$priceperdayequal to $ppdrow,这是一个数组。您想将其设置为数组中的正确值(列

while($ppdrow = mysql_fetch_assoc($getprice)) {
   $priceperday = $ppdrow[$startmonth];
}

另请阅读为什么不使用mysql_*

于 2013-02-27T09:28:36.257 回答