Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Al usar Innodb y campo autoincremento no actualiza mi registros..

Estas en el tema de Al usar Innodb y campo autoincremento no actualiza mi registros.. en el foro de Mysql en Foros del Web. muy buenos dias a todos... espero puedan ayudarme con lo siguiente... tengo creada una base de datos creada y en total operacion utilizando tablas Innodb, ...
  #1 (permalink)  
Antiguo 06/02/2012, 18:17
Avatar de franblack  
Fecha de Ingreso: noviembre-2008
Ubicación: Caracas
Mensajes: 25
Antigüedad: 16 años
Puntos: 0
Pregunta Al usar Innodb y campo autoincremento no actualiza mi registros..

muy buenos dias a todos...

espero puedan ayudarme con lo siguiente...

tengo creada una base de datos creada y en total operacion utilizando tablas Innodb, para mantener la integridad referencial, y de alguna otra forma evitar que en mi base de datos pueda tener en ciertos campos información repetida ingresada por el usuario. Estos campos en especifico son Pais-Estado-Ciudad.

Mi tabla principal tiene la siguiente estructura,

Base de datos en la que se almanacena información del area administrativa y de centros de reparación.

Tabla de info administrativa.

Codigo de cliente_campo INT ( valor introducido por el usuario )
Nombre de cliente_campo VARCHAR ( valor introducido por el usuario )
Pais_campoINT ( es una FK, valor introducido aqui proviene de una tabla PAIS )
Estado_campo INT ( igual que el anterior, es una FK, valor proviene de una tabla ESTADO )
Ciudad_campo INT ( igual a los dos anteriores, es una FK, valor proviene de una tabla CIUDAD )
--
otros campos como:
direccion, telefonos, email, de tipo varchar...

Tabla de Info de centros de reparación.

IDcentroderepación_campo INT autoincremento.
ID_Codigo de cliente_campo INT ( valor introducido aqui proviene de la tabla de info administrativa, es una foreign key, FK )
Estado_campo INT ( igual que el anterior, es una FK, valor proviene de una tabla ESTADO )
Ciudad_campo INT ( igual a los dos anteriores, es una FK, valor proviene de una tabla CIUDAD )
----
otros campos igual que en los anteriores:
direccion, telefonos, email, de tipo varchar...


Mi problema o falla que no logro descifrar:

Es que, tengo una aplicacion en php, para ingresar, editar y borrar datos que funciona a la perfección para mi tabla de info administrativa. Al momento de seleccionar la información de un cliente para actualizarla/editarla (por ejemplo, pagina: verclientes_ad.php ), envio con GET el codigo de cliente a otra pagina ( ejemplo, actualiza_ad.php ) y cuando ya tengo los campos en el formularios actualizar, doy en el boton actualizar del formulario y se actuliza sin problemas...

Sin embargo, esa misma aplicacion, funciones y codigo "aplicado" a la tabla centro de reparación, al momento de seleccionar y pasar el codigo de cliente para actualizar su info del centro de reparación, este aunque muestra en el url IDcentroderepación?id=1, por ejemplo en el caso de que el codigo del centro de repa sea 1, este, luego de actualizar la info en el formulario, y darle a mi boton actualizar, no me realiza el UPDATE en base de datos...


Me podrian ayudar por favor ?

Mi real confusion o problema es que no entiendo porque en una tabla innodb el codigo no me trabaja cuando utilizo un campo autoincremento (campo idcentroderapa ) y si me esta trabajando cuando el campo es introducido de forma manual por el usuario ( campo codigo de cliente )...

Porque si actualiza cuando el ID es ingresado por el usuario y no actualiza cuando es un campo autoincremento, si realmente estoy utilizando casi que el mismo conjunto de operaciones, lo unico que cambio son mis sentencias UPDATE y ambas corren o se ejecutan bajo mysqlworkbench..

Muchas gracias, por su tiempo, por leer

y de anticipada gracias por las respuestas que pueda recibir...
  #2 (permalink)  
Antiguo 07/02/2012, 09:53
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 14 años, 2 meses
Puntos: 91
Respuesta: Al usar Innodb y campo autoincremento no actualiza mi registros..

Podrías poner las sentencias que utilizas?
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #3 (permalink)  
Antiguo 08/02/2012, 16:07
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Al usar Innodb y campo autoincremento no actualiza mi registros..

Soy de la opinión de Ribon: tienes que ponernos las consultas que utilizas. El problema puede estar en la consulta de INSERCIÓN, porque imagino que es inserción y no update, y probablemente lo que ocurre es que no estás cargando el dato del primer campo, es decir, del identificador. Por otra parte, si se tratara de un update tendrías que añadir WHERE id = $variableid que te traes por GET.
Pero sin la consulta no podemos ayudarte.
  #4 (permalink)  
Antiguo 08/02/2012, 23:20
Avatar de franblack  
Fecha de Ingreso: noviembre-2008
Ubicación: Caracas
Mensajes: 25
Antigüedad: 16 años
Puntos: 0
Respuesta: Al usar Innodb y campo autoincremento no actualiza mi registros..

Muchas gracias!!!! Ribon!

Muchas gracias!!!! Jurena!!

Muchas pero muchas gracias por preguntar y querer ayudarme... de verdad tenia ya mas de una semana dandome de cabeza con la mesa, pues no encontraba el ERROR!!!

Me centre en el codigo php y mysql que estoy utilizando y deje de lado el "codigo html" :S . He resuelto la falla, estaba en la etiqueta del boton "submit"!!! andaba mal escrito y ya no sabia que hacer, pues habia revisado "linea por linea, el codigo php y mysql! ya como ultima opcion y despues de haberme cansado de reescribir el codigo php y mysql paso a paso varias veces, me di a la tarea de revisar y rechequear el codigo HTML :S, le faltaba una letra al "submit" y por eso no me actualizaba o me hacia el UPDATE!!! ( como es practicamente el mismo formulario para ingresar y actualizar! por alli debi haber metido la pata y haberle borrado o no hecho bien el "copy-paste" del formulario!!! )

Muchas gracias por todo, aunque el formulario lleva mas campos y las instrucciones lo mismo, para hacerlo corto y a manera de ejemplo, no con todos los campos, le coloco las instrucciones utilizadas,

Con nombre de tabla infoad para la informacion administrativa y cderepa como nombre de tabla para la informacion de centros de reparacion.. continuo...


Para recuperar la informacion de las tablas... y pasar el id a la pagina actualiza.php con el formulario mostrando los valores a editar utilizo:
Código MySQL:
Ver original
  1. "SELECT cderepa.idcderepa, infoad.codigodecliente, infoad.nombrecliente, cderepa.direccion, cderepa.telefono, cderepa.email
  2. from cderepa
  3. INNER JOIN infoad
  4. ON cderepa.idcodigodecliente=infoad.codigodecliente"


recuperando los valores del query... coloco/muestro los valores en una tabla, el valor del id lo paso a la pagina actualiza.php con:

Código PHP:
Ver original
  1. echo '<td><a href="actualiza.php?idcderepa=' . $row['idcderepa'] . '">Actualizar</a></td>';


Este idcderepa es verificado con $_GET, pues es pasado a traves de la url... realizo el query a la base de datos donde el valor sea igual al "idcderepa" y cargo los valores en mi formulario...

Código HTML:
Ver original
  1. <form action="" method="post">
  2.  <div>
  3.  <input type="hidden" name="idcederepa" value="<?php echo $idcederepa; ?>" />
  4.  <br/>
  5.  <div>
  6.  <label for="codigodecliente">Codigo cliente</label>
  7.  <input type="text" name="codigocliente" value="<?php echo $codigocliente; ?>" />
  8.  <br/>
  9.  <label for="telefono">Telefono</label>
  10.  <input type="text" name="telefono" value="<?php echo $telefono; ?>" />
  11.  <br/>
  12.  <input type="submit" name="submit" value="Submit">
  13.  </div>
  14.  </form>

la instrucción utilizada para realizar el UPDATE es:

Código PHP:
Ver original
  1. UPDATE cderepa SET direccion=$direccion, telefono=$telefono, email=$email where idcderepa='$idcederpa'

pues no todos los campos los actualizo.


Muchas pero muchisimas gracias a ambos... y a todos los que leyeron mi tema!


Era un error de tipeo! :S

Ya puedo hacer el UPDATE sin problemas con campo autoincremento al usar tablas innodb! me traia ya super el problemita!

Continuo adelante con mi proyecto, pues aun me faltan incluir unas cuantas aplicaciones, como creacion de pdf, subida de archivos, y tengo dudas con un codigo de PHP al recuperar la info de bse de datos para mostrarla en un option select... pero eso ya es tema de PHP y alli lo colocare.... para esto colocare el archivo .sql con la estructura de la base de datos... el formulario y codigo php utilizado, asi como las instrucciones...


Espero que haya salido bien el Highlight y no haberme equivocado!

MILLONES DE GRACIAS NUEVAMENTE!!!!

Última edición por franblack; 08/02/2012 a las 23:27 Razón: razon para editar? novato en esto del Highlight!

Etiquetas: innodb, php, sql, tabla, usar, actualizar, campos
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 12:38.