我正在尝试创建一个预订公司的定价系统,我有一个数据库表的价格。典型的行是这样的:
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 )
我可能正在做一些非常愚蠢的事情,但是谁能告诉我什么?
你可以试试这个
$getprice = mysql_query("SELECT ".$startmonth." FROM prices WHERE model ='".$model."' ");
while($ppdrow = mysql_fetch_assoc($getprice)) {
$priceperday = $ppdrow[$startmonth];
}
试试这个查询:
$getprice = mysql_query("SELECT `".$startmonth."` FROM prices WHERE model = '".$model."' ");
注意单引号处的反引号(在列名周围)
对于while循环,您试图设置$priceperday
等于$ppdrow
,这是一个数组。您希望将其设置为数组中的正确值(列):
while($ppdrow = mysql_fetch_assoc($getprice)) {
$priceperday = $ppdrow[$startmonth];
}
请同时阅读为什么不使用mysql_*