Foros del Web » Programando para Internet » PHP »

identificar filas y columnas de tabla php para actualizacion de datos

Estas en el tema de identificar filas y columnas de tabla php para actualizacion de datos en el foro de PHP en Foros del Web. Hola a todos nuevamente, he estado conun dolor de cabeza desde hace dos semanas, y no logro saber como poder hacer lo que el titulo ...
  #1 (permalink)  
Antiguo 22/09/2014, 07:08
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 10 años, 4 meses
Puntos: 0
Exclamación identificar filas y columnas de tabla php para actualizacion de datos

Hola a todos nuevamente, he estado conun dolor de cabeza desde hace dos semanas, y no logro saber como poder hacer lo que el titulo del post dice... necesito ayuda, para poder actualizar los datos de una tabla en php que es resultado de una previa consulta y que por ende a veces la tabla tiene ciertas filas de más o otras no (la cantidad varía), como hago?, se les agradece de corazón su oportuna ayuda!
  #2 (permalink)  
Antiguo 22/09/2014, 07:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: identificar filas y columnas de tabla php para actualizacion de datos

La única forma útil para luego operar con la base de datos es que cada fila (en el array o donde fuera que lo almacenes), obtenga también la PK de la tabla origen en lña base, ya que ese es el único valor que permite identificar unívocamente un registro en una tabla de la base.
Las posiciones visuales de los datos en pantalla son irrelevantes para la base. Sólo una PK es util para la acción,.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 22/09/2014, 07:55
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: identificar filas y columnas de tabla php para actualizacion de datos

Entiendo... pero a la manera de tomar la codificación PHP para realizar la respectiva acutalización de datos de la tabla PHP, en dicha sintaxis es donde no tengo claridad... pues toma el campo que decidí editar, realiza el cambio exitosamente, pero así ocurre en el restante de filas, dejando duplicada la información en todas... esto es lo que hasta el momento he logrado avanzar, pero de allí no he sabido como hacer para que no ocurra ese constante error...
Código PHP:
Ver original
  1. if($btn=="Actualizar"){
  2.    
  3.     foreach($_POST['txtnoproy'] as $key => $noproyecto){
  4.         $cantidad = $_POST['txtcotiz'][$key];
  5.         $obs = $_POST['txtobscotiz'][$key];
  6.         $nopro = $_POST['txtnopro'][$key];
  7.        
  8.         $sql="update cotizaciones set idproducto='".$nopro."', cantidad='.$cantidad.', observaciones='".$obs."' where noproyecto='".$noproyecto."'";
  9.         $cs=mysql_query($sql,$cn);
  10.         }
  11.         echo "<script> alert('Se actualizo la cotizacion correctamente');
  12.         window.location='ingresoproyectos.php';</script>";
  13.         }
  #4 (permalink)  
Antiguo 22/09/2014, 08:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: identificar filas y columnas de tabla php para actualizacion de datos

Código PHP:
Ver original
  1. $sql="update cotizaciones set idproducto='".$nopro."', cantidad='.$cantidad.',
  2. observaciones='".$obs."' where noproyecto='".$noproyecto."'";
¿Por qué estás haciendo un UPDATE sobre el campo "idproducto"?
¿Has tenido en cuenta que al poner en el WHERE como única condición que corresponda a un determinado "noproyecto", si en "cotizaciones" hay más de un producto asignado al mismo proyecto, se escribirá ese valor en todos ellos?
Para que un UPDATE afecte un único registro, la condición del WHERE debe poder ser tal que sólo pueda devolver un único registro para la acción, a menos que quieras realziar un up`date masivo de N registros.

Veamos bien: Si esto devuelve más de un registro, todos esos registros serán afectados:
Código PHP:
Ver original
  1. $sql="SELECT *FROM cotizaciones WHERE noproyecto='".$noproyecto."'";
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 22/09/2014, 14:18
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: identificar filas y columnas de tabla php para actualizacion de datos

claro, devuelve varios registros, pues son los productos cotizados de dicho proyecto, que a la final son los datos que aparecen en la tabla en php que quisiera actualizar... debo colocarle un campo id producto algo asi como autonumerico para que diferencie?...
  #6 (permalink)  
Antiguo 22/09/2014, 14:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: identificar filas y columnas de tabla php para actualizacion de datos

Cita:
debo colocarle un campo id producto algo asi como autonumerico para que diferencie?...
Más exactamente, debes colocarle las condiciones necesarias para una identificación unívoca.
Quiero imaginar que esa tabla tiene PK, ¿no?

Cuando hace un update que aplica a un único registro, el WHERE debe devolver un sólo registro.
¿No te parece razonable?
Si devuelve más, los cambiso se aplicarán a TODOS los registros devueltos al mismo tiempo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 23/09/2014, 06:23
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: identificar filas y columnas de tabla php para actualizacion de datos

Hola gnzsoloyo, obviamente si facilita el trabajo (por decir así) un campo único que identifique cada producto... la actualización fue exitosa solamente en la fila donde cambié los datos... sino que en mi terquedad buscaba solucionar eso sin mirar la base de datos; más no entiendo ahora porque solo realiza exitosamente la tarea en la primera fila más en la segunda no pasa nada siendo que ya tiene la ID que los diferencia?...
  #8 (permalink)  
Antiguo 23/09/2014, 07:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: identificar filas y columnas de tabla php para actualizacion de datos

Me par que no estas procesando un arma y, sino un único conjunto de datos...
Verifica que es lo que recibes en $_POST
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: php+base+de+datos+array
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:16.