我已经设法在这里使用其他问题,以便在我的表中找到中位数结果,但现在我不确定如何打印此结果。
这是我的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)] ^^^
答案 0 :(得分:1)
正如评论所示,考虑转移到PDO或mySQLi,因为所有mysql_
命令都已被弃用。
您的PHP需要阅读;
echo "The average price of a pint ". $row['type']. " is £".$row['price'];
但是,我想知道您希望在Type列中返回什么内容?因为你没有在上面选择它,而且你将只返回一个单一的值和一种类型的课程,即使你计算的是所有价格的中位数。
至少,你的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
答案 1 :(得分:0)
首先,您需要考虑使用mysqli或PDO来运行您的查询,您完全容易使用mysql_query进行sql注入,并且无论如何都会对其进行折旧,并且很快就会被删除。如果您的查询在您的数据库上直接运行时,它应该从php运行。
检查您要返回的行数
$numrows = mysql_num_rows($result)
确保引用正确的列。