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 を設定しようとしています。配列内$ppdrowの正しい値(列)に設定したい:

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

使用しない理由についてもお読みくださいmysql_*

于 2013-02-27T09:28:36.257 に答える