在php中显示mysql表的一列的最大值?

时间:2012-03-03 21:32:46

标签: php

我想在php中显示mysql表的特定列的最大值。这是我的代码:

  <?php
         mysql_connect("localhost","root","") or die(mysql_error());
         mysql_select_db("database") or die(mysql_error());

         $var = $_POST['value'];
         $sql = mysql_query(" SELECT MAX(column) FROM tableName WHERE variable='$var' ") or die(mysql_error());

         $row = mysql_fetch_array($sql) or die(mysql_error());

         echo "Maximum value is ::  ".$row['column'];
    ?>

输出:::

    Maximum value is :: 

6 个答案:

答案 0 :(得分:3)

或者你可能有点创意:

$sql = mysql_query("SELECT `column` FROM tableName WHERE variable='$var' ORDER BY `column` DESC LIMIT 1") or die(mysql_error());

答案 1 :(得分:1)

这与我正在寻找解决方案的问题相同。以下方法奏效了。解决方案是使用“ MYSQLI_NUM ”。虽然下面的代码给出了预期的结果,但它看起来仍然太复杂。有没有办法使用“while”语句“快捷”来搜索数组,因为只有一个返回值?

选择最大值只返回一个数字,但PHP似乎仍然需要一个循环来评估整个数组。我期待一些简单的事情,例如:max_value = result(0)。

<?php

    require_once 'login.php';
    $conn = new mysqli($hn, $un, $pw, $db);
    if ($conn->connect_error) die($conn->connect_error.'   Sorry, could not connect to the database server');

        $query = "SELECT MAX(IssueIDNUM) FROM tblIssueList";

        $result =$conn->query($query);  
        if (!$result) die($conn->error);

        while($row=mysqli_fetch_array($result, MYSQLI_NUM)) 
        {
            $maxresult=$row[0];
            echo $maxresult;            
         }  

    $result->close();
    $conn->close();

?>

通过进一步的实验,我还能够通过Jim H.调整代码来开发以下解决方案。虽然它有效但代码仍然看起来太复杂了。

// Solution #2
        $result =$conn->query("SELECT MAX(IssueIDNUM) `max` FROM tblIssueList");      
        if (!$result) die($conn->error);
        while($row=mysqli_fetch_array($result, MYSQLI_ASSOC)) 
        {
            echo $row['max'];
        } 

答案 2 :(得分:0)

列的真实姓名为MAX(column),请尝试:

print_r($row);

您可以这样做:

$sql = mysql_query(" SELECT MAX(column) AS `column` FROM tableName WHERE variable='$var' ") or die(mysql_error());

或者:

$row = mysql_fetch_row($sql) or die(mysql_error());
echo "Maximum value is ::  ".$row[0];

答案 3 :(得分:0)

你有两个选择。按索引或按列名称。如果您确实想使用列名,请在查询中为该列添加别名。

$sql = mysql_query(" SELECT MAX(column) `max` FROM tableName WHERE variable='$var' ") or die(mysql_error());

然后你可以使用

$row['max'];

$row[0];

答案 4 :(得分:0)

您可能没有返回任何行。您应该尝试WHERE变量LIKE'%$ var%';

答案 5 :(得分:0)

     $sql = mysql_query(" SELECT MAX(column) AS GIVE_A_NAME FROM tableName WHERE variable='$var' ") or die(mysql_error());

      echo "Maximum value is ::  ".$row['GIVE_A_NAME'];