Foros del Web » Programando para Internet » PHP »

problemas con ID autoincrementable

Estas en el tema de problemas con ID autoincrementable en el foro de PHP en Foros del Web. hola amigos de fdw tengo una tabla llamada persona y uno de sus campos es ID y este es autoincrement. resulta que yo ingreso una ...
  #1 (permalink)  
Antiguo 19/11/2006, 15:41
 
Fecha de Ingreso: abril-2006
Mensajes: 140
Antigüedad: 18 años
Puntos: 0
problemas con ID autoincrementable

hola amigos de fdw

tengo una tabla llamada persona y uno de sus campos es ID y este es autoincrement.
resulta que yo ingreso una nueva persona con todos sus datos por medio de mi formulario de ingreso de nuevas personas y el ID se incrementa automaticamente en la BD,pero necesito que si yo ingreso una nueva persona por medio del mismo formulario, cuando se despiegue en pantalla el formulario en blanco ya venga con el ID +1 en relacion al anterior usuario ingresado.

como hago esto???


yo estoy haciendo una consulta a la BD como esta :

Código PHP:

$ultsol
=mysql_query("SELECT max(ID) from personas");
$ultsol +1
lo que pretendo es que me tome el numero mayor y a ese le sumo uno pero no se como hacerlo, por que aunke sume al numero mayor +1, sigue desplegandose el mismo ID max que se encuentra en la tabla.
hay otra manera y mejor de hacerlo???
y si no es asi, de ke manera podria yo tomar ese valor que se guarda en el array_fetch para pasarlo a numero y asi poder sumarle 1??

gracias desde ya

chaoxxxz
  #2 (permalink)  
Antiguo 19/11/2006, 16:51
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Hola,

Código PHP:

$ultsol
=mysql_query("SELECT max(ID) from personas");
$ultsol $ultsol +1
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #3 (permalink)  
Antiguo 19/11/2006, 16:52
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
O bien...

Código PHP:
$utsol=mysql_query("SELECT max(ID) from personas");
$ultsol++; 
No sé si sería necesario usar mysql_result además del mysql_query.....

Código PHP:
$sql=mysql_query("SELECT max(ID) from personas");
$utsol=mysql_result($sql0);
$ultsol++; 
  #4 (permalink)  
Antiguo 19/11/2006, 17:51
 
Fecha de Ingreso: abril-2006
Mensajes: 140
Antigüedad: 18 años
Puntos: 0
amigos probe estas opciones pero el problema no se soluciona.
borre todos las personas y el numero ke me muestra es siempre 5 sin variar :S
de que otra manera podre colocar automaticamente en numero ID +1 al agregar una nueva persona?

gracias desde ya por los aportes
  #5 (permalink)  
Antiguo 19/11/2006, 18:15
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Es que el id autoincremental no varia.

Si vos ingresas 3 registros:

id nombre

1 pepe
2 juan
3 pedro

El proximo id sera 4 y no importa que borres los tres registros que tenes, el proximo id sera 4.

Para hacer lo que deseas me parece que tenes que usar un campo numerico comun y vos mismo encargarte de asignarle los valores que correspondan.

Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #6 (permalink)  
Antiguo 19/11/2006, 18:43
 
Fecha de Ingreso: abril-2006
Mensajes: 140
Antigüedad: 18 años
Puntos: 0
es lo mismo ke pensaba :P
no utilizar auto numerico, pero ke opcion usar para verificar el ultimo ID o el mas grande y ke me funcione, por ke al utilizar las opciones vistas, no me muestra otro numero ke no sea el 5 :s es muy extraño.

ke hacer :S??

gracias amigos
  #7 (permalink)  
Antiguo 19/11/2006, 18:48
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Pues, basicamente lo mismo que estas usando, pero con un campo que no sea autoincremental.

"SELECT max(campo_comun) from personas"

Y a lo que te de, le sumas uno.

Igual y poniendo el mismo ejemplo:

campo_comun nombre

1 pepe
2 juan
3 pedro


Si borras el registro 2, el registro 3 seguira valiendo 3, salvo que lo cambies manualmente a 2...


Saludos..
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #8 (permalink)  
Antiguo 19/11/2006, 20:51
 
Fecha de Ingreso: abril-2006
Mensajes: 140
Antigüedad: 18 años
Puntos: 0
sabes lo hice y nada :s siempre me muestra el mismo numero aunke alla eliminado todas las personas de la tabla:s siempre me muestra 5

ke otra cosas hacer :S?
  #9 (permalink)  
Antiguo 20/11/2006, 02:03
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
no entiendo bien el problema pero postearé segun lo leido lo que tu quieres es sacar el último valor de tu campo auto_increment de esta forma mostrar en el formulario que número es el que siga sumandole uno ahora veamos. Aquí muestro mi solución:

si ya tienes una table con auto_increment y deseas reiniciar la numeración usa:
Código PHP:
ALTER TABLE mi_table AUTO_INCREMENT 1
Ahora vayamos al código:

Código PHP:
mysql_connect("hostname""usuario""contraseña");
mysql_select_db("base_de_datos");
$resultado mysql_query("SELECT MAX(ID) AS ID FROM mi_table");
$reg=mysql_result($resultado);

echo 
$reg
Espero sea de tu utilidad sino postea los errores

Saludos
__________________
Hospedaje Web al mejor costo!
  #10 (permalink)  
Antiguo 20/11/2006, 09:00
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
prueba con :

Código PHP:
$sql=mysql_query("SELECT max(ID) as id from personas");
$utsol=mysql_result($sql0);
$ultsol++;  

echo 
$utsol//Te dara la mas alta de la base de datos + 1 
Si eso no sirve puedes hacer una consulta distinta:

Código PHP:
$sql=mysql_query("SELECT id from personas order by id DESC limit 1");
$utsol=mysql_result($sql0);
$ultsol++;  

echo 
$utsol//Te dara la mas alta de la base de datos + 1 
  #11 (permalink)  
Antiguo 20/11/2006, 17:53
 
Fecha de Ingreso: abril-2006
Mensajes: 140
Antigüedad: 18 años
Puntos: 0
probe tu primer solucion y me da siempre independiente allan o no personas ingresadas el valor 5.
la segunda = allan los ke allan siempre me muestra un 5 y nada mas.

ya no se ke hacer :(

ke solucion sera buena para incrementar en 1 un ID, pero que consulte cual es el myor o el ultimo mas grade ingresado?

tambien kiero decir ke el campo ya no es autincrement en la BD

el resultado k me arroja por la segunda opcion es este

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\personal\ingresarpersona.php on line 29
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 20:09.