PHP - Error al editar registro php 7

 
Vista:
Imágen de perfil de ccessaro
Val: 52
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al editar registro php 7

Publicado por ccessaro (23 intervenciones) el 19/11/2020 22:57:18
// Cuando tengo el listado de un CRUD y selecciono editar o Eliminar registro trae la información pero
// NO ACTUALIZA EL REGISTRO
GRACIAS DE ANTE MANO... POR COMPARTIR SU SABIDURIA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public function editar($id){
 
    if($_SERVER['REQUEST_METHOD'] == 'POST'){
        $datos = [
            'id_user' => $id,
            'nombre' => trim($_POST['nombre']),
            'email' => trim($_POST['email']),
            'user' => trim($_POST['user']),
            'password' => trim($_POST['password']),
        ];
 
        if($this->usuarioModelo->actualizarUsuario($datos)){
            redireccionar('/paginas');
        }else{
            die('Algo salió mal');
        }
    }else{
 
        //Obtener información de usuario desde el modelo
        $usuario = $this->usuarioModelo->obtenerUsuarioId($id);
 
        $datos = [
            'id_user' => $usuario->id_user,
            'nombre' => $usuario->nombre,
            'email' => $usuario->email,
            'user' => $usuario->user,
            'password' => $usuario->password
        ];
 
        $this->vista('/paginas/editar', $datos);
    }
 
}

CapturaEditar
ErrorEditarRegistro


// ESTE ES LA CLASE CORE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
class Core{
    protected $controladorActual = 'paginas';
    protected $metodoActual = 'index';
    protected $parametros = [];
 
    //constructor
    public function __construct(){
        //print_r($this->getUrl());
        $url = $this->getUrl();
 
        // Busacar en controladores si el controlador existe
        if (file_exists('../app/controladores/' . ucwords($url[0]).'.php')){
            //si existe se setea como controlador por defecto
            $this->controladorActual = ucwords($url[0]);
 
 
            //unset indice
            unset($url[0]);
        }
 
        //requerir el controlador
        require_once '../app/controladores/' . $this->controladorActual . '.php';
        $this->controladorActual = new $this->controladorActual;
 
 
        //chequear la segunda parte de la url que sería el método
        if (isset($url[1])) {
            if (method_exists($this->controladorActual, $url[1])) {
                //chequeamos método
                $this->metodoActual = $url[1];
                //unset indice
                unset($url[1]);
                }
        }
 
        // para probar traer método
        //echo $this->metodoActual;
 
        //obtener los parámetros
        $this->parametros = $url ? array_values($url) : [];
 
        //llamar callback con parametros array
     LINEA 53  call_user_func_array([$this->controladorActual, $this->metodoActual], $this->parametros);
    }
 
 
    public function getUrl(){
        //echo $_GET['url'];
 
        if(isset($_GET['url'])) {
            $url = rtrim($_GET['url'], '/');
            $url = filter_var($url, FILTER_SANITIZE_URL);
            $url = explode('/', $url);
            return $url;
 
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error al editar registro php 7

Publicado por Mauro (1036 intervenciones) el 20/11/2020 13:11:15
Hola:

Para comenzar, nota que te está dando un error de too few arguments en la llamada a Paginas::editar().

Mira la línea 48 de Paginas.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de ccessaro
Val: 52
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al editar registro php 7

Publicado por ccessaro (23 intervenciones) el 20/11/2020 18:49:37
Hola!! Mauro la linea que me da error es
1
public function editar($id){
que es el script de Editar. el primer codigo que esta en el post.
No logro saber que pasa .. busco y no veo... gracias.
gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error al editar registro php 7

Publicado por Mauro (1036 intervenciones) el 22/11/2020 02:04:57
El problema está en la llamada a editar, no en la definición de la función.

Te falta pasarle el parámetro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de ccessaro
Val: 52
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al editar registro php 7

Publicado por ccessaro (23 intervenciones) el 23/11/2020 20:30:42
GRACIAS MAURO VOY A MIRAR Y PROBAR...
ESTE ES EL CODIGO DONDE RECOJO LA INFORMACION
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<table class="table">
    <thead class="card-header">
        <tr>
            <th>ID</th>
            <th>Nombre</th>
            <th>Email</th>
            <th>User</th>
            <th colspan="2"><i class="fa fa-asterisk"> </i> Acciones</th>
        </tr>
    </thead>
    <tbody>
    <?php foreach($datos['usuarios'] as $usuario) : ?>
        <tr>
            <td> <?php echo $usuario->id_user; ?> </td>
            <td> <?php echo $usuario->nombre; ?> </td>
            <td> <?php echo $usuario->email; ?> </td>
            <td> <?php echo $usuario->usuario; ?> </td>
            <td> <a class="btn btn-dark" href="<?php echo RUTA_URL; ?>/paginas/editar/<?php echo $int =(int)$usuario->id_user; ?>"><i class="fa fa-pencil"> </i> Editar</a> </td>
            <td> <a class="btn btn-danger"  href="<?php echo RUTA_URL; ?>/paginas/borrar/<?php echo $int =(int)$usuario->id_user; ?>"><i class="fa fa-trash"> </i> Eliminar</a> </td>
        </tr>
    <?php endforeach; ?>
    </tbody>
</table>

Y ESTE ES EL CODIGO DE EDITAR PARA QUE LLAME LA FUNCION

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<form action="<?php echo RUTA_URL; ?>/paginas/editar/<?php $datos['id_user']; ?>" method="post">
  <div class="form-group row">
    <div class="col-md-6">
      <label class="contact-textfield-label" for="nombre">Nombre</label>
      <input type="text" class="form-control" name="nombre" value="<?php echo $datos['nombre']; ?>" >
    </div>
    <div class="col-md-6 mt-md-0 mt-3">
      <label class="contact-textfield-label" for="email">Email</label>
      <input type="email" class="form-control" name="email" value="<?php echo $datos['email']; ?>">
    </div>
  </div>
  <div class="form-group row">
    <div class="col-md-6">
      <label class="contact-textfield-label" for="usuario">Usuario</label>
      <input type="text" class="form-control" name="usuario" value="<?php echo $datos['usuario']; ?>" >
    </div>
    <div class="col-md-6 mt-md-0 mt-3">
    </div>
  </div>
  <div class="form-group row">
    <div class="col-md-6">
    <label class="contact-textfield-label" for="password">Password</label>
      <input type="text" class="form-control" name="password" value="<?php echo $datos['password']; ?>" >
    </div>
 
  </div>
  <button type="submit" class="btn btn-success btn-contact">Actualizar Usuario</button>
</form>
MUCHAS GRACIAS SI ME DAS UNA LUZ .....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error al editar registro php 7

Publicado por Mauro (1036 intervenciones) el 24/11/2020 13:25:00
¿Puedes mostrar el código de app\controladores\Paginas.php?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de ccessaro
Val: 52
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al editar registro php 7

Publicado por ccessaro (23 intervenciones) el 25/11/2020 20:45:58
Hola!! Mauro el primer codigo que puse es el codigo de Paginas.php, solo coloque ese por que crear y listar me funciona bien de esa pagina.... si quieres la coloco toda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?php
 
class Paginas extends Controlador{
 
    public function __construct(){
        $this->usuarioModelo = $this->modelo('Usuario');
    }
 
    public function index(){
        //obtener los usuarios
        $usuarios = $this->usuarioModelo->obtenerUsuarios();
 
        $datos = [
            'usuarios' => $usuarios
        ];
 
        $this->vista('paginas/home', $datos);
    }
 
    public function agregar(){
 
        if($_SERVER['REQUEST_METHOD'] == 'POST'){
            $datos = [
                'nombre' => trim($_POST['nombre']),
                'email' => trim($_POST['email']),
                'usuario' => trim($_POST['usuario']),
                'password' => trim($_POST['password']),
            ];
 
            if($this->usuarioModelo->agregarUsuario($datos)){
                redireccionar('/paginas');
            }else{
                die('Algo salio mal');
            }
        }else{
            $datos = [
                'nombre' => '',
                'email' => '',
                'usuario' => '',
                'password' => ''
            ];
 
            $this->vista('/paginas/agregar', $datos);
        }
    }
 
 
    public function editar($id){
 
        if($_SERVER['REQUEST_METHOD'] == 'POST'){
            $datos = [
                'id_user' => $id,
                'nombre' => trim($_POST['nombre']),
                'email' => trim($_POST['email']),
                'usuario' => trim($_POST['usuario']),
                'password' => trim($_POST['password']),
            ];
 
            if($this->usuarioModelo->actualizarUsuario($datos)){
                redireccionar('/paginas');
            }else{
                die('Algo salió mal');
            }
        }else{
 
            //Obtener información de usuario desde el modelo
            $usuario = $this->usuarioModelo->obtenerUsuarioId($id);
 
            $datos = [
                'id_user' => $usuario->id_user,
                'nombre' => $usuario->nombre,
                'email' => $usuario->email,
                'usuario' => $usuario->usuario,
                'password' => $usuario->password
            ];
 
            $this->vista('/paginas/editar', $datos);
        }
 
    }
 
    public function borrar($id_user){
 
           //Obtener información de usuario desde el modelo
            $usuario = $this->usuarioModelo->obtenerUsuarioId($id_user);
 
            $datos = [
                'id_user' => $usuario->id_user,
                'nombre' => $usuario->nombre,
                'email' => $usuario->email,
                'usuario' => $usuario->usuario,
                'password' => $usuario->password
            ];
 
            if($_SERVER['REQUEST_METHOD'] == 'POST'){
            $datos = [
                'id' => $id_user,
            ];
 
            if($this->usuarioModelo->borrarUsuario($datos)){
                redireccionar('/paginas');
            }else{
                die('Algo salio mal');
            }
        }
 
        $this->vista('/paginas/borrar', $datos);
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error al editar registro php 7

Publicado por Mauro (1036 intervenciones) el 25/11/2020 21:23:00
Ok, creo que me confundí pero si ves el mensaje de error que te da al comienzo dice que el problema está en la línea 53 del archivo app\librerias\Core.php

Será esto que pusiste aquí:

1
LINEA 53  call_user_func_array([$this->controladorActual, $this->metodoActual], $this->parametros);

Porque de ser así, el problema debe ser que $this->parametros está vacío cuando debería contener un id.

Para saber por qué sucede eso no te quedará otra opción más que realizar el seguimiento de la ejecución del código en forma dinámica.

Ahí yo te sugiero usar xdebug o algo similar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de ccessaro
Val: 52
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al editar registro php 7

Publicado por ccessaro (23 intervenciones) el 27/11/2020 18:54:12
Gracias mauro por tu gran ayuda ...
te comento como me fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error al editar registro php 7

Publicado por Mauro (1036 intervenciones) el 27/11/2020 20:10:49
No hay problema! Exitos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar