Foros del Web » Programando para Internet » PHP »

select max (id)

Estas en el tema de select max (id) en el foro de PHP en Foros del Web. Hola, soy nuevo en esto, y estoy teniendo un problema, el cual es el sig. tengo en una tabla "expediente" y en esta columnas, (expid, ...
  #1 (permalink)  
Antiguo 08/01/2013, 11:17
 
Fecha de Ingreso: enero-2013
Mensajes: 5
Antigüedad: 11 años, 3 meses
Puntos: 0
select max (id)

Hola, soy nuevo en esto, y estoy teniendo un problema, el cual es el sig. tengo en una tabla "expediente" y en esta columnas, (expid, n_exp, asunto) hay mas pero no importa.
el expid es el que tiene el autoincrementar, todo funciona bien, pero en n_exp necesito también que se auto incremente el valor, hice lo siguiente, lo cual funciona bien ti ya tengo un valor ingresado (con lo cual "n_exp" ya tendría un valor 1), si borro el registro y dejo la tabla vacía me da error, calculo por el valor que obtengo es null y no lo podrá sumar.

Lo que tengo que hacer es obtener el ultimo valor y sumarle 1, ya que es un numero de expediente y tienen que ser consecutivos y no puede faltar ninguno.

Espero que se entienda lo que quiero hacer.

$user="usuario";
$pass="clave";
$host="localhost";
$dbname="basedatos";
$tabla="expediente";



$link=mysql_connect ($host, $user, $pass);
$query="SELECT MAX(n_exp) as maximo from $tabla";
$result = mysql_db_query($dbname, $query, $link);
$row = mysql_fetch_array($result);
$numero=$row["maximo"]; (aca me da error)
$last_n_exp=$numero + 1;


gracias por la ayuda que puedan darme, encontré algo acá en este foro pero no logre solucionarlo, quizás se pueda hacer de otra forma.
  #2 (permalink)  
Antiguo 08/01/2013, 13:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: select max (id)

¿Que error te genera?
  #3 (permalink)  
Antiguo 08/01/2013, 13:21
 
Fecha de Ingreso: enero-2013
Mensajes: 5
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: select max (id)

No se, dice solo Error:


$link=mysql_connect ($host, $user, $pass)
or die("Error: ".mysql_error());
$query="SELECT MAX(n_exp) as maximo from $tabla"
or die("Error: ".mysql_error());
$result = mysql_db_query($dbname, $query, $link)
or die("Error: ".mysql_error());
$row = mysql_fetch_array($result)
or die("Error: ".mysql_error());
$numero=$row["maximo"]
or die("Error: ".mysql_error());
$last_n_exp=$numero + 1;
  #4 (permalink)  
Antiguo 08/01/2013, 13:39
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: select max (id)

Ya me ha pasado algo parecido. En tal caso, creo que es mejor hacer un select:

$query="select n_exp as maximo from $tabla order by n_exp DESC limit 1";

si no hay datos, no generará error, y te devolverá 0 filas.

Si lo hay, te devolverá el mayor dato posible.

O bien puedes verificar si previamente si hay datos antes de hacer el max
  #5 (permalink)  
Antiguo 08/01/2013, 13:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: select max (id)

Pues si estas aplicando el or die() en todo es muy difícil saber en que parte sale error, deberías de usar el or die() solamente en las funciones de mysql ya que son las que generan un error y puedes verlo con mysql_error().

Saludos.
  #6 (permalink)  
Antiguo 08/01/2013, 15:23
 
Fecha de Ingreso: enero-2013
Mensajes: 5
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: select max (id)

ocp001a gracias, con lo me dijiste ya funciono...

gracias a todos por tomarse un tiempo...
  #7 (permalink)  
Antiguo 08/01/2013, 15:33
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: select max (id)

Como sugerencia no uses la función mysql_db_query completamente obsoleta. Deberías usar mysql_query.

En el futuro aprende PDO_MySQL o MySQli

Cita:
Mysql_*: Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro. En su lugar, deberían usarse las extensiones MySQLi o PDO_MySQL.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 08/01/2013, 16:44
 
Fecha de Ingreso: enero-2013
Mensajes: 5
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: select max (id)

andresdzphp gracias por la recomendación, lo estare viendo.

Etiquetas: max, mysql, registro, select, tabla, usuarios
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 14:22.