2012-09-15 14 views
6

Esta es la tabla de estructura-SELECT MAX (... no devolver nada en PHP/MySQL

Table: test 

+------+---------+ 
| PAGE | CONTENT | 
+------+---------+ 
| 1 | ABC | 
+------+---------+ 
| 2 | DEF | 
+------+---------+ 
| 3 | GHI | 
+------+---------+ 

PAGE es un tipo de datos primaria con INT(11). No incremento automático. El contenido es del tipo de datos TEXT .

En PHP I DO-

$result = mysql_query(SELECT MAX(PAGE) FROM test); 
$row = mysql_fetch_array($result); 
echo $row["PAGE"]; 

No hay salida. En absoluto. Si hago algo así como echo "Value : ".$row["PAGE"]; todo lo que veo es Value :

La consulta SELECT * FROM test funciona bien. ¿Me equivoco en algún lugar con la sintaxis MAX()?

Quiero que devuelva el valor máximo de PAGE hasta el momento.

+4

Todo parece estar bien ... ¿podría intentar usar esto? consulta 'SELECT MAX (PAGE) como PAGE FROM test' en su lugar y mira si hay alguna diferencia? – InSane

+0

Muchas gracias. Funciona. He estado luchando con esto por mucho tiempo. –

+3

Deje de escribir el nuevo código con las antiguas funciones mysql_ *. Ya no se mantienen y la comunidad ha comenzado el [proceso de desaprobación] (http://news.php.net/php.internals/53799). En su lugar, debe aprender sobre declaraciones preparadas y usar ya sea [PDO] (http://php.net/pdo) o [MySQLi] (http://php.net/mysqli). Si te interesa aprender, [aquí hay un tutorial bastante bueno relacionado con PDO] (http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers). – DCoder

Respuesta

8

Este debería ser el código.

$result = mysql_query("SELECT MAX(PAGE) AS max_page FROM test"); 
$row = mysql_fetch_array($result); 
echo $row["max_page"]; 
1

¿No deberías tener comillas alrededor de esa consulta en mysql_query? No tengo idea de qué hará PHP con una declaración tan sintácticamente inadecuada, pensé que le habría dado un error.

En cualquier caso, una función de agregado puede tener un nombre de columna diferente de la columna utilizada (desde la memoria, DB2 le da un nombre similar a la función, como max_page_ o algo así). Es posible que desee asegurarse de que tiene el nombre de la columna correcta forzando el nombre con algo como:

$result = mysql_query("SELECT MAX(PAGE) AS MAXPAGE FROM TEST"); 
$row = mysql_fetch_array($result); 
echo $row["MAXPAGE"]; 
+0

Creo que simplemente lo escribió mal, ya que de lo contrario recibiría un error. – FluffyJack

0
$connect = mysqli_connect("localhost", "root", "", "carBid") or die("not connected"); 

//connection to database 
$sql2 = "SELECT max(mybid) FROM `bid`"; 

//simle select statement with max function 
$result_set2 = mysqli_query($connect,$sql2); 

//query a result fetch 
if ($result_set2) { 
    $rowB = mysqli_fetch_array($result_set2); 
    //feching a result in array format 
    echo $rowB['max(mybid)']; 
    //accessing array by name of column with max() function of mysql 
} else { 
    echo 'No Current Bid'; 
} 
mysqli_close($connect); 
+0

Hay un "{" demasiado o demasiado menos, creo. – Cleb

+0

Solo una nota rápida. 'mysql_query' y' mysql_fetch_array' están en desuso. –

+0

Si bien este código puede responder la pregunta, sería mejor explicar cómo se resuelve el problema y por qué usarlo. Las respuestas de solo código no son útiles a largo plazo. –

-1

Try continuación Código

$result = mysqli_query($con,"SELECT max(page2_content_id) AS max_page from page2_content_data"); 
$row = mysqli_fetch_array($result); 
echo $row["max_page"]; 

Dónde $con=new mysqli($server,$user,$password,$db_name); y page2_content_data es mi mesa, y page2_content_id es el nombre de la columna

+0

Los usuarios de SO pueden ordenar las respuestas de varias maneras, por lo que hablar de * "respuesta superior e inferior" * es casi insignificante. – trincot