Foros del Web » Programando para Internet » PHP »

Problemilla con un INSERT

Estas en el tema de Problemilla con un INSERT en el foro de PHP en Foros del Web. Hola saludos a todos, vereis tengo un problemilla con un Insert, es una chorrada pero nose donde puede estar el origen. Tengo una pagina donde ...
  #1 (permalink)  
Antiguo 23/05/2006, 04:51
Avatar de unaiu  
Fecha de Ingreso: abril-2006
Mensajes: 139
Antigüedad: 11 años, 7 meses
Puntos: 0
Problemilla con un INSERT

Hola saludos a todos, vereis tengo un problemilla con un Insert, es una chorrada pero nose donde puede estar el origen.

Tengo una pagina donde mediante PHP inserto registros en una tabla de mysql. Hasta hace poco el programa me insertaba los nombres bien, quiero decir siguiendo un orden, cada vez que insertaba uno me insertaba al final de todos los registros.

Ahora nose a causa de que me inserta siempre despues del registro 12.
Es decir aunq haya 15 registros y yo meto el registro 16 en la tabla me aparece asi:

-EL registro 12, 16,15,14,13

Quizas haya tocado algo sin querer o tenga que hacer algo, nose...

Si halguien puede ayudarme se lo agradeceria.gracias
  #2 (permalink)  
Antiguo 23/05/2006, 04:57
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
Cita:
Iniciado por unaiu
Hola saludos a todos, vereis tengo un problemilla con un Insert, es una chorrada pero nose donde puede estar el origen.

Tengo una pagina donde mediante PHP inserto registros en una tabla de mysql. Hasta hace poco el programa me insertaba los nombres bien, quiero decir siguiendo un orden, cada vez que insertaba uno me insertaba al final de todos los registros.

Ahora nose a causa de que me inserta siempre despues del registro 12.
Es decir aunq haya 15 registros y yo meto el registro 16 en la tabla me aparece asi:

-EL registro 12, 16,15,14,13

Quizas haya tocado algo sin querer o tenga que hacer algo, nose...

Si halguien puede ayudarme se lo agradeceria.gracias
el identificador, en la base de datos, del registro es autoincremental? ¿Lo introduces tú desde el php o dejas que lo asigne la base de datos? ¿has tocado la estructura de la tabla en la base?
__________________
http://www.nosoynadie.net/
  #3 (permalink)  
Antiguo 23/05/2006, 05:17
Avatar de unaiu  
Fecha de Ingreso: abril-2006
Mensajes: 139
Antigüedad: 11 años, 7 meses
Puntos: 0
Lo introduzco yo mediante PHP y es autoincremental
  #4 (permalink)  
Antiguo 23/05/2006, 05:28
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
Cita:
Ahora nose a causa de que me inserta siempre despues del registro 12.
Es decir aunq haya 15 registros y yo meto el registro 16 en la tabla me aparece asi:

-EL registro 12, 16,15,14,13
Sorry, me puedes explicar esto otra vez .. no lo acabo de entender bien
__________________
http://www.nosoynadie.net/
  #5 (permalink)  
Antiguo 23/05/2006, 05:40
Avatar de unaiu  
Fecha de Ingreso: abril-2006
Mensajes: 139
Antigüedad: 11 años, 7 meses
Puntos: 0
Con eso quiero decir que cuando meto un registro, ese registro se guarda despues del registro 12.
Por ejemplo, tengo 14 registros y ahora boy a meter otro que mediante el codigo PHP me saca cual sera el siguiente COD_PERSONA que es 15.

Eso me hace bien no hay problema, pero hace el insert y ese mismo registro
(el que tiene COD=15) se guarda justo despues del registro 12 y la tabla queda así.


Cita:
...
...
11
12 Unai Etxano [email protected]
15 Luis Garrido [email protected]ñar.com
14 xxxx xxxxxxxx [email protected]
13 ... .... [email protected]

espero que me haya explicado mejor
  #6 (permalink)  
Antiguo 23/05/2006, 05:43
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 12 años, 7 meses
Puntos: 2
Lo cierto es que no se porque supone eso un problema. Da igual el orden en que estan introducidos, si lo que quieres es tenerlos ordenados por el identificador, cuando hagas una consulta sql especificaselo.

De todas formas, si estas visualizando la tabla en un phpmyadmin o algo parecido, es posible que estes ordenando por algun otro criterio sin darte cuenta
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.

Última edición por oskarL; 23/05/2006 a las 05:52
  #7 (permalink)  
Antiguo 23/05/2006, 05:53
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
oscarL tiene razón, ¿tan importante es que tengas los ids en la base consecutivos? ¿los datos los ves en phpmyadmin? ¿cuál es el criterio de ordenación?

Cuando dices
Cita:
PHP me saca cual sera el siguiente COD_PERSONA que es 15
¿como lo sacas? ¿con mysql_insert_id? (http://dev.mysql.com/doc/refman/5.0/...insert-id.html) ¿mediante la cuenta de registros desde php (con algún select previo)?

Si pudieras ponernos algo del código que inserta y comprobar, en phpmyadmin, cual es el valor de autoincrement de la tabla nos ayudaría
__________________
http://www.nosoynadie.net/
  #8 (permalink)  
Antiguo 23/05/2006, 09:35
Avatar de unaiu  
Fecha de Ingreso: abril-2006
Mensajes: 139
Antigüedad: 11 años, 7 meses
Puntos: 0
Ya lo he conseguido arreglar aunq para ello e tenido que borrar la tabla y llenarla otra vez, aunq todavia no me explico que es lo que paso.

Ya se que no es muy importante el orden de tener los registros y que lo puedes especificar al llenar la variable de PHP, pero lo que queria buscar era el origen de este fallo.

En la tabla no tengo asignado autoincrementado y mediante este codigo PHP le doy el valor que le corresponde:
Cita:
$ult=mysql_query("select max(COD_PERSONA) from tpersonas");
$ultimo=mysql_fetch_row($ult);
$ultimo[0]=$ultimo[0]+1;
$insert=mysql_query("insert into tpersonas values('".$ultimo[0]."','".$_POST['nombre']."','".$_POST['ap1']."','".$_POST['ap2']."','".$_POST['email']."')");
Gracias por ayudarme, nose si se os ocurre algo bien sino pues nada..

Saludos
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 03:51.