Tengo la siguiente situacion clasica, aparentemente es simple, pero no doy con la solucion, selecciono uno registro en un cuadro y lo llevo a una pantalla de edicion, en la pantalla de edicion hago cambios (en algunos campos no todos) y actualizar dicho registro.
el problema es con el metodo del datos_tabla “modificar” ($tabla->modificar_fila($id_fila, $datos) )
El $id_fila segun lei es la identificación propia de la fila no relacionada con la clave de la tabla física. ¿Como obtengo este valor ? para decirle que me actualice los registros donde el id_fila=“algun valor” ¿que formato tiene? en la documentacion dice “Id. interno de la fila a modificar”
mixed modificar_fila( mixed $id, array $fila, [array $nuevos_padres = null] )
El procedimiento para actualizar un registro que estoy siguiendo es:
En “$this->s__idsolicitud” guardo el valor del campo ID (la clave primaria) del cuadro donde selecciono el registro, pero me aparece un error , me dice que el indice no es correcto.
Por lo que comentás en la descripción del problema asumo que estás cargando el datos_tabla con una única fila.
En el método que estás usando para modificar el registro, tengo entendido, el valor que debes especificar (además de los datos) no es el de la clave primaria de tu tabla, sino el orden interno que se le asignó al cargar el DT. En este caso, al ser una única fila, el valor sería 0.
Para este caso (de una única fila), puedes usar la siguiente forma:
ya que al ser una sola fila el cursor queda ubicada en la misma, y luego sincronizar como lo hacés.
En el caso de que fuera un DT con más de una fila, se puede:
Ubicar el cursor en la fila deseada y usar el …->set($datos)
o
…->modificar_fila($indice,$datos); ($indice es el subindice de la fila del DT donde está el registro, NO la clave primaria de tu tabla).
Salvo que alguno de los muchachos que saben de verdad diga lo contrario, sería la forma de modificar los datos.
buenisimo, si estuve, trabajando con un solo registro y use la API get -set, me preguntaba esto para el caso de tener que modificar varios registros o en el caso de eliminar tambien tengo que especificar un indice por eso queria saber como obtenerlo
Bueno, para el caso en que tengas varias filas cargadas en el DT ya que este forma parte de una DR, deberías ubicar el subíndice con la siguiente sentencia: