Foros del Web » Programando para Internet » PHP »

Máximo valor de un campo en una tabla (MySQL)

Estas en el tema de Máximo valor de un campo en una tabla (MySQL) en el foro de PHP en Foros del Web. Hola! Me gustaría conseguir el máximo valor de un campo en una tabla que tengo hecha. Lo he intentado hacer así: $max_id=mysql_query("SELECT max(id) FROM tabla"); ...
  #1 (permalink)  
Antiguo 29/03/2003, 10:24
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 0
Máximo valor de un campo en una tabla (MySQL)

Hola!
Me gustaría conseguir el máximo valor de un campo en una tabla que tengo hecha.
Lo he intentado hacer así:
$max_id=mysql_query("SELECT max(id) FROM tabla");

pero no se que se devuelve en $max_id que no es lo que espero.

De esta otra manera he probado pero tampoco me devuelve lo esperado:

$max_id=mysql_query("SELECT count(*) FROM tabla");

Esta última me devuelve el número de campos que hay en la tabla que es igual a max_id por eso lo he intentado así.


muchas gracias a quien me pueda ayudar.


NO A LA GUERRA.
  #2 (permalink)  
Antiguo 29/03/2003, 10:53
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
$max_id=mysql_query("SELECT id FROM tabla WHERE 1 ORDER BY `id` DESC LIMIT 0, 1");
  #3 (permalink)  
Antiguo 29/03/2003, 16:40
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
$q_max_id=mysql_query("SELECT max(id) as maximo FROM tabla");
$max_id = mysql_result($q_max, 0, $maximo);
__________________
M a l d i t o F r i k i
  #4 (permalink)  
Antiguo 29/03/2003, 16:51
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 0
Ya funciona!

Gracias!

Una aclaración. Las formas que había puesto yo también son válidas. Tenía un fallo:

me faltaba ejecutar la orden:

$row=mysql_fetch_array($max_id);

y posteriormente acceder a la posición 0 del array $row

echo $row[0];

ahí el valor que buscaba;

De todas maneras me has ayudado!

Gracias.

NO A LA GUERRA.
  #5 (permalink)  
Antiguo 30/03/2003, 10:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No hace falta que hagas un fetch_array .. cuando sabes que obtienes un único registro con un único campo que es tu max(id) ..

Código PHP:
$consulta=mysql_query("SELECT max(id) FROM tabla");
$max_id mysql_result($consulta0); 
Lo que te puso Cain de max(id) AS maximo es un Alias . se usa mucho para poner un nombre "amigable" y que puedas usar como indice asociativo en tus xxx_fetch_array o assoc .. Si no haces el "alias" debes acceder por indice númerico a ese campo .. en este caso "0" ...

Si usas mysql_result() y no indicas el campo (3er parámetro) se asume el "0" .. Podría ser tambien: mysql_result($consulta, 0, 0)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 30/03/2003, 10:48
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 0
Gracias!

Gracias Cluster por aclararme esa duda.

Ahora tengo otra! El segundo parámetro de mysql_result que especifica?

NO A LA GUERRA! :negar:
  #7 (permalink)  
Antiguo 30/03/2003, 11:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Es el registro entregado por la consulta que hagas .. comenzando por el 0 .. 1,2,3,4 .. etc segun registros arroje esa consulta (filas) ..

Revisa el manual de PHP y busca esa función . .ahí tienes la sintax y forma de trabajar exacta para que lo veas (así con todas las funciones sobre el tema "mysql" ..)

www.php.net/manual/es

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 05:03.