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


show the maximum value of a column of mysql table in 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 :: 

或者你可以有点创意:

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

这与我寻找解决方案时遇到的问题相同。下面的方法奏效了。该解决方案使用"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'];
        } 

列的真实名称是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];

您有两个选择。按索引或按列名。如果您真的想使用列名,请为查询中的列别名。

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

然后你可以使用

$row['max'];

$row[0];

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

     $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'];