我在PHP中有这段代码
$max="SELECT MAX(num) FROM info";
$maxquery= mysql_query($max) or die (died);
while($row = mysql_fetch_array($maxquery)){
echo "The max num is ". $row['num']."this is it";
}
$maxnum= mysql_fetch_array($maxquery);
echo "<br>".$maxnum."hh";
然后输出为:
最大数量是这个
HH
为什么查询没有获得最大数量?
该表名为info
,它包含以下字段,ID,数字,标题,说明和答案。
编辑后:
我在MySQL中尝试了我的查询,它运行正常!
“SELECT MAX(num)FROM info”
如果可以提供帮助,这是我的完整代码:
<?php
$answer=$_GET["answerbox"];
$ID=$_GET["TheID"];
$host="localhost";
$username="root";
$password="";
$db_name="game";
mysql_connect("$host","$username","$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$max="SELECT MAX(num) FROM info";
$maxquery= mysql_query($max) or die (died);
while($row = mysql_fetch_array($maxquery)) {
echo "The max num is ". $row['num']."this is it";
}
$maxnum= mysql_fetch_array($maxquery);
$sql="SELECT * FROM info WHERE ID=".$ID;
$query = mysql_query($sql) or die(errorquery);
$row = mysql_fetch_array($query);
$trueanswer = $row['Answer'];
$num=$row['num'];
if ($num<$maxnum)
{
$numto= $num +1 ;
echo "<br>".$maxnum."hh";
}
?>
答案 0 :(得分:6)
然后代码将
$max="SELECT MAX(num) as num FROM info";
$maxquery= mysql_query($max) or die (died);
while($row = mysql_fetch_assoc($maxquery)) {
echo "The max num is ". $row['num']."this is it";
}
答案 1 :(得分:1)
您在结果集中查找的列不称为num。试试print_r($ row);查看数组索引是什么,或给它一个别名,例如
$max="SELECT MAX(num) AS max_num FROM info";
...
echo "The max num is ". $row['max_num']
答案 2 :(得分:1)
这是另一种更简单的方法:
$query="SELECT MAX(num) FROM info";
list ($max) = mysql_fetch_row(mysql_query($query));
print ($max);
数据库中的num字段必须是数值数据类型(即int,float等)才能使其正常工作。
答案 3 :(得分:0)
在MySQL查询窗口中运行您的查询然后分析输出。这样您就可以专注于查询而不会妨碍PHP。
完成后,修改问题,以便我们可以看到实际运行的查询。
答案 4 :(得分:0)
查询看起来很好。请逐步检查从结果集中获取数据的代码。
答案 5 :(得分:0)
这是因为您的查询返回标量值,而不是数组。 $ maxquery是您想要获得的值。
我建议在尝试使用PHP运行它之前检查数据库的查询。