如何查询MySQL表列最高条目并将其存储在变量中

时间:2010-04-14 14:09:08

标签: php mysql

如何查询MySQL表列最高条目并将其存储在变量中。这是我的,但它不起作用。

$query = "SELECT MAX(date) FROM Records WHERE ips='$currentip'";
$result = mysql_query($query) or die(mysql_error());
echo $result;

更新

<?php
$db = mysql_connect("localhost", "123", "123");
mysql_select_db("123");
$currentip='123.456.789';
$query = "SELECT MAX(date) FROM Records WHERE ips='$currentip'";
$date = mysql_result($result, 0);
echo $date;
?>

6 个答案:

答案 0 :(得分:1)

要指出的是,当您尝试回显$result时,您只回显资源,因为这是mysql_query返回的内容。

如果您想回显该列,请尝试:

while($row = mysql_fetch_assoc($result)) {
   echo $row['date'];
}

或者您可以使用mysql_result将返回值返回到字符串中。

$query = "SELECT MAX(date) FROM Records WHERE ips='$currentip'";
$date = mysql_result($result, 0);  
echo $date;

要么应该工作,要么没有经过测试或编译。

关于您的更新代码:

<?php
$db = mysql_connect("localhost", "123", "123");
mysql_select_db("123");
$currentip='123.456.789';
$query = "SELECT MAX(date) FROM Records WHERE ips='$currentip'";
$result = mysql_query($query); // <--you forgot this line.
$date = mysql_result($result, 0); // <--now $result has a valid resource.
echo $date;
?>

我还强烈建议,既然你是一名新的PHP程序员,那就习惯于采用某种形式的错误处理/检查,例如

$db = mysql_connect("localhost", "123", "123");
if (!$db) {
  die('Could not connect: ' . mysql_error());
}
...
$result = mysql_query($query);
if (!$result) {
  die('Could not perform query: ' . mysql_error());
}

从您的编程经验开始执行错误检查是非常好的做法,并且从长远来看将更适合您。

答案 1 :(得分:0)

在查询中使用max()

答案 2 :(得分:0)

select max(column_name) from table_name

答案 3 :(得分:0)

Max()将使用group by子句

"SELECT MAX(date) AS mdate FROM Records WHERE ips='$currentip' GROUP BY ips"; 

答案 4 :(得分:0)

 $myQuery = "SELECT MAX(date) FROM Records WHERE ips='$currentip'";

 $result = mysql_query($myQuery,$connection);

 $mydate= mysql_fetch_row($result);

 echo $mydate[0];

答案 5 :(得分:0)

您绝对需要阅读MySQL Functions的手册章节。通过从第三方代码中挑选随机函数并尝试猜测它们如何工作来编写程序只会导致精神崩溃。

总结一下:

  • mysql_query()执行查询并返回资源ID
  • 您使用此类资源ID来获取具有任何mysql_fetch _ *()函数的行

我特别喜欢mysql_fetch_assoc():

<?php
# ...
if( $row = mysql_fetch_assoc($resource_id) ){
    echo $row['MAX(date)'];
}
?>

我还推荐了一些关于基本SQL的教程。例如,您可以定义别名以使结果更易于处理:

SELECT MAX(date) AS max_date FROM ...
echo $row['max_date'];

最后但并非最不重要的一点是,如果您在阅读有关SQL注入之前将您的网站放在网上,请告诉我们,以便我们可以破解它;-)(提示:http://es.php.net/manual/en/function.mysql-real-escape-string.php