1

表で結果の中央値を見つけるために、ここで他の質問を使用することができましたが、この結果を印刷する方法がわかりません。

これは私のPHPです:

$query = "SELECT x.price 
          FROM price_pints x, price_pints y 
          GROUP BY x.price 
          HAVING SUM(    
                       SIGN( 
                             1 - SIGN( y.price - x.price ) 
                           ) 
                    ) / COUNT( * ) > .5 
          LIMIT 1"; 

$result = mysql_query($query) or die(mysql_error());

// Print out result
while($row = mysql_fetch_array($result)){
echo "The average price of a pint ". $row['type']. " is £".$row['x.price(price)'];
echo "<br />";
}

phpmyadminでSQLクエリをテストすると、結果は5と表示されますが、結果をエコーすると表示されません。

以前、私は平均を計算しました、そしてそれは次のように印刷するのが簡単でした:

echo "The average price of a pint ". $row['type']. " is £".$row['AVG(price)'];

今、私は。$ row [price(price)]を変更する方法として立ち往生しています^^^

4

2 に答える 2

1

mysql_コメントが示唆するように、すべてのコマンドが廃止されているため、PDO または mySQLi への移行を検討してください。

PHP を読む必要があります。

echo "The average price of a pint ". $row['type']. " is £".$row['price'];

しかし、Type 列に何が返されることを期待しているのでしょうか? 上記で選択していないため、すべての価格の中央値を計算しているにもかかわらず、1 つの値と 1 つのタイプのみを返すことになります。

少なくとも、SQL は次のようになります。

      SELECT x.price, x.type 
      FROM price_pints x, price_pints y 
      GROUP BY x.price 
      HAVING SUM(    
                   SIGN( 
                         1 - SIGN( y.price - x.price ) 
                       ) 
                ) / COUNT( * ) > .5 
      LIMIT 1
于 2013-02-15T16:54:32.733 に答える
0

まず、クエリを実行するために mysqli または PDO を使用することを検討する必要があります。そうは言っても、データベースで直接実行したときにクエリが機能している場合は、phpから実行する必要があります。

返される行数を確認してください

$numrows = mysql_num_rows($result)

適切な列を参照していることを確認してください。

于 2013-02-15T16:35:30.050 に答える