Foros del Web » Programando para Internet » PHP »

Insert en Mysql desde Php

Estas en el tema de Insert en Mysql desde Php en el foro de PHP en Foros del Web. Estoy diseñando un formulario para manejar bases de datos. El formulario está en html y mediante ajax realizo las llamadas a la clase php que ...
  #1 (permalink)  
Antiguo 23/09/2009, 09:17
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 14 años, 7 meses
Puntos: 0
Insert en Mysql desde Php

Estoy diseñando un formulario para manejar bases de datos.

El formulario está en html y mediante ajax realizo las llamadas a la clase php que se comunica con la base de datos en mysql.

El formulario muestra todos los campos de la tabla y permite:

1.- Ir al primer registro
2.- Ir al último registro
3.- Ir al siguiente registro
4.- Ir al anterior registro
5.- Actualizar el registro actual
6.- Borrar el registo actual
7.- Insertar un nuevo registro

Las 4 primera funciones no tienen mucha complicación y funcionan correctamente haciendo uso de la claúsula LIMIT.

La función Actualizar también está realizada con UPDATE y actualiza posteriormente el formulario.

La función Borrar funciona de modo que cuando borra un registro, el formulario se actualiza:

- Si hemos borrado el último muestra el registro anterior.
- Si hemos borrado el primero muestra el registro siguiente.
- Si hemos borrado cualquier otro también muestra el siguiente.
De este modo las funciones de 'Ir' siguen funcionando en el orden que se recuperaron los datos.

El problema lo tengo con la función Insertar, puesto que cuando inserto un nuevo registro, ¿como puede colocar este en la posición que realmente queda en la tabla, y las funciones 'Ir' den la información correcta?.

Entiendo que dependerá de la ordenación de la tabla y de la nueva clave que asigne, pero quiero saber si existe algún modo de saber la posición entre todos los registros de este nuevo sin tener que realizar un SELECT * trás el INSERT
mostrando el siguiente.
  #2 (permalink)  
Antiguo 23/09/2009, 09:36
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Insert en Mysql desde Php

Existe una funcion que recupera el ultimo id ingresado en la base de datos:
mysql_insert_id()

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 23/09/2009, 09:39
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Insert en Mysql desde Php

La conozco, el tema es que en la bases de datos que uso no gasto los auto increment.

Prefiero que las claves sean campos de la base de datos, para optimizar accesos.
  #4 (permalink)  
Antiguo 23/09/2009, 09:39
Avatar de _-ZeuS-_  
Fecha de Ingreso: junio-2007
Ubicación: Quito, Ecuador! ;)
Mensajes: 100
Antigüedad: 16 años, 10 meses
Puntos: 7
Sip Marvin tiene razón con mysql_insert_id() lo que haces es tomar el último id insertado en la base de datos x lo general los id son númericos así ke te retorna un dato integer

creo que podrías aumentar un kampo integer o hacer lo ke no kieres un select count de la base para ver los kampos y así identifikar sú numero

Última edición por GatorV; 23/09/2009 a las 10:41
  #5 (permalink)  
Antiguo 23/09/2009, 09:43
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Insert en Mysql desde Php

En ese caso seria la solucion que te queda... a menos que, por lo mismo, antes de hacer el insert debas calcular cual es el nuevo valor que vas a ingresar como identificador del dato.

Dado lo anterior, tendrias que usar ese identificador solamente.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #6 (permalink)  
Antiguo 23/09/2009, 12:32
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Insert en Mysql desde Php

Buscando por internet veo que aunque una tabla mysql se ordene (ALTER TABLE ... ORDER BY) este orden se rompe con los insert y delete.

¿Quiere decir esto que lo registros nuevos siempre van al 'final' de la tabla?. Si es así mi problema queda resuelto.
  #7 (permalink)  
Antiguo 23/09/2009, 12:42
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Insert en Mysql desde Php

Cita:
Iniciado por muvtu Ver Mensaje
¿Quiere decir esto que lo registros nuevos siempre van al 'final' de la tabla?. Si es así mi problema queda resuelto.
Sí.

Y otra cosa, normalmente, en tu caso, es viable usar TOKEN, por decirlo de alguna manera, es otro identificativo para el registro, pero dado por ti, no por la DB. Suelen usarse rand para este tipo de campos.


Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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:54.