Проблема с максимальной функцией SQL - PullRequest
1 голос
/ 30 ноября 2010

У меня есть этот код в 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";

, тогда результат будет:

Максимальный номер:

чч


Почему запрос не получил максимальное число?

Таблица называется 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";
    }
?>

Ответы [ 6 ]

6 голосов
/ 30 ноября 2010

Тогда код будет

$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 голос
/ 30 ноября 2010

Вот еще один и более простой способ:

$query="SELECT MAX(num) FROM info";
list ($max) = mysql_fetch_row(mysql_query($query));
print ($max);

Поле num в вашей базе данных должно быть числовым типом данных (т. Е. Int, float и т. Д.) Для правильной работы.

1 голос
/ 30 ноября 2010

Столбец, который вы ищете в наборе результатов, НЕ называется num. Попробуйте print_r ($ row); чтобы увидеть, что индексы массива, или дать ему псевдоним, например,

$max="SELECT MAX(num) AS max_num FROM info";
...
   echo "The max num is ". $row['max_num']
0 голосов
/ 30 ноября 2010

Это потому, что ваш запрос возвращает скалярное значение, а не массив. $ maxquery - это значение, которое вы хотите получить.

Я рекомендую проверить ваш запрос к базе данных, прежде чем пытаться запустить его с PHP.

0 голосов
/ 30 ноября 2010

Запрос выглядит нормально.Пожалуйста, проверьте ваш код получения данных из набора результатов шаг за шагом.

0 голосов
/ 30 ноября 2010

Выполните запрос в окне запроса MySQL, а затем проанализируйте вывод. Таким образом, вы сможете сосредоточиться на запросе без вмешательства PHP.

Как только вы это сделаетеизмените вопрос так, чтобы мы могли видеть запрос, который фактически выполняется.

...