php MAX MySQL Query не повторяется - PullRequest
0 голосов
/ 16 марта 2012

Ниже ничего не отображается. Я просто хочу вытащить МАКСИМАЛЬНОЕ число между двумя датами. SQL-запрос на самом деле работает, и даты хороши, так как они используются в других запросах. Кажется, он просто не работает с селектором MAX.

$con = mysql_connect("host","user","pw");
mysql_select_db("db", $con);

//Other queries before this..
$query5="SELECT MAX(TOTALVISITS) FROM mytable WHERE DATE between '$mystartdate' and '$thedbdate'";

$result5=mysql_query($query5);
mysql_close();

$maxtotal=mysql_result($result5);

echo $MAX TOTAL: " . $maxtotal;

1 Ответ

1 голос
/ 16 марта 2012

Во-первых, не звоните mysql_close() после mysql_query(). Ваш набор результатов не будет доступен для извлечения.

$result5=mysql_query($query5);
// DON'T DO THIS!
//mysql_close();

mysql_result() принимает как минимум два параметра - ресурс и строку, которую вы хотите получить, и, необязательно, столбец, который вы хотите получить. Поскольку у вас есть только один столбец, технически его можно опустить.

// Get the first column of the first row from the result set.
$maxvisits = mysql_result($result5, 0, 0);

Обратите внимание, что хорошей практикой является присвоение псевдонима вычисляемому или агрегированному столбцу:

$query5="SELECT MAX(TOTALVISITS) AS maxvisits FROM mytable WHERE DATE between '$mystartdate' and '$thedbdate'";
//------------------------------^^^^^^^^^^^^^^

Это упрощает использование таких функций, как mysql_fetch_assoc(), которые могут быть немного более гибкими, чем mysql_result():

$row = mysql_fetch_assoc($result5);
echo $row['maxvisits'];
...