Foros del Web » Programando para Internet » PHP »

Sacar el valor máximo de una columna (PHP y MYSQL)

Estas en el tema de Sacar el valor máximo de una columna (PHP y MYSQL) en el foro de PHP en Foros del Web. Hola a todos, estoy haciendo un sistemita de facturación para un negocio propio y necesito que en el formulario de factura me aparezca automaticamente el ...
  #1 (permalink)  
Antiguo 28/09/2004, 04:04
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 19 años, 6 meses
Puntos: 0
Sacar el valor máximo de una columna (PHP y MYSQL)

Hola a todos, estoy haciendo un sistemita de facturación para un negocio propio y necesito que en el formulario de factura me aparezca automaticamente el numero de factura, o sea, el valor máximo de la columna 'numero'(asi se llama la columna en la que van los num de factura).
Lo estaba haciendo de esta manera:

$user="usuario";
$host="localhost";
$dbname="facturacion";
$tabla="facturaiva";

$link=mysql_connect("localhost", "root");
$query="SELECT MAX(numero) FROM $tabla";
$result=mysql_db_query($dbname, $query, $user);
$row=mysql_fetch_array($result);
$numero=$row["numero"]:
echo $numero++;

Bueno, ese es el código, y el error que me sale me dice:
Undefined indes 'numero' ...

La verdad es que recién empiezo con esto y no lo pude resolver ... alguien me puede dar una mano ???
Saludos y muchas gracias de antemano.
Leo
  #2 (permalink)  
Antiguo 28/09/2004, 04:11
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Desde PHP no puedes acceder directamente al resultado de una funcion. Debes o bien crear un alias en la consulta y referirte a el (SELECT MAX(numero) as maximo), o bien usar el indice numerico en el array ($row[0]).

Otra opcion es que en este caso, como solo devuelves un registro con un campo, puedes usar la funcion mysql_result() (www.php.net/mysql_result) en lugar de mysql_fetch_array().

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 28/09/2004, 04:14
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 10 meses
Puntos: 2
Se me ocurre que la columna no sea numérica sino de texto.
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #4 (permalink)  
Antiguo 28/09/2004, 04:17
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 19 años, 6 meses
Puntos: 0
Josemi, antes que nada, gracias por responder !
la línea $query quedaría asi:
$query="(SELECT MAX(numero) as maximo) FROM $tabla";

pero después cómo lo llamo al valor máximo de 'numero'?
$row["numero"] también o de qué forma ?

Gracias nuevamente

Leo
  #5 (permalink)  
Antiguo 28/09/2004, 04:17
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 10 meses
Puntos: 2
ummm, no, parece que tiene más lógica lo que dice Josemi porque el error parece ser que te lo está devolviendo php y no mysql. Pues nada, retiro lo dicho
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #6 (permalink)  
Antiguo 28/09/2004, 04:18
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 10 meses
Puntos: 2
Cita:
Iniciado por impala
Josemi, antes que nada, gracias por responder !
la línea $query quedaría asi:
$query="(SELECT MAX(numero) as maximo) FROM $tabla";

pero después cómo lo llamo al valor máximo de 'numero'?
$row["numero"] también o de qué forma ?

Gracias nuevamente

Leo
$row["maximo"] es lo que tendrías que usar
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #7 (permalink)  
Antiguo 28/09/2004, 04:42
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 19 años, 6 meses
Puntos: 0
Ahora sale otro error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...

<?php
$user="root";
$host="localhost";
$dbname="facturacion";
$tabla="facturanoiva";

$link=mysql_connect($host, $user);
$query="(SELECT MAX(numero) as maximo) FROM $tabla";
$result=mysql_db_query($dbname, $query, $link);
$row=mysql_fetch_array($result);
$numero=$row["maximo"]; // En esta línea es el error.
echo $numero++;
?>

Y ahora ...

Última edición por impala; 28/09/2004 a las 04:48
  #8 (permalink)  
Antiguo 28/09/2004, 04:48
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 10 meses
Puntos: 2
quitas los parentesis y dejalo así:

$query="SELECT MAX(numero) as maximo FROM $tabla";
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #9 (permalink)  
Antiguo 28/09/2004, 04:50
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 19 años, 6 meses
Puntos: 0
Ya está !!!!!!!!!!!! :D
Saqué los parentesis y funcionó enseguida !!!!!!!!!

Muchisimas gracias a los dos !!!!!
Saludos

Leo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:11.