MySQL - Update SQL Problema, con MVC+SMARTY+PHP

 
Vista:

Update SQL Problema, con MVC+SMARTY+PHP

Publicado por Joaquin (1 intervención) el 02/10/2022 17:21:25
Hola estoy tratando de hacer un update en mi base de datos SQL... Ya pude lograr que entrando a una fila de la tabla muestre todo el contenido a editar en forma de Input, pero cuando le doy al boton Editar campo con otros valores, me reedirecciona a /edit con un par de errores y a su vez tambien es un input... No me puedo dar cuenta del error que puedo tener... Les dejo mi codigo..

También esta ruteado a mano, asi que les dejo mis 3 MVC + Router + Formulario de editar, a ver si alguno de ustedes se puede dar cuenta donde esta mi error... Desde ya muchas gracias!!

Controlador

1
2
3
4
5
6
7
8
9
10
11
12
13
function editLibroAction($ID_Juego){
  $game = $this->model->getJuego($ID_Juego);
  $generos = $this->model->getALLGeneros();
  $this->view->showEdit($game,$generos);
 
}
function editjuego2(){
 
  $this->model->updateGameFromDB($_POST['ID_Juego'], $_POST['Nombre'],$_POST['Precio'],$_POST['Fecha'],$_POST['Genero_ID']);
  header("Location: " . BASE_URL);
 
 
}```


**VIEW**

1
2
3
4
5
function showEdit($game,$generos){
  $this->smarty->assign('game', $game);
  $this->smarty->assign('generos', $generos);
  $this->smarty->display('templates/form_edit_juego.tpl');
}

**MODEL**

1
2
3
4
5
6
7
function updateGameFromDB($ID_Juego,$Nombre,$Fecha,$Precio,$Genero){
 
  $query = $this->db->prepare("UPDATE juegos SET Nombre=?,Fecha=?,Precio=?,Genero_ID=? WHERE ID_Juego =?");
  $query->execute(array($Nombre,$Fecha,$Precio,$Genero,$ID_Juego));
 
 
}

**ROUTER**
[/b
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
]$params = explode('/', $action);
$GamesController = new GamesController();
 
 
// tabla de ruteo
switch ($params[0]) {
    case 'home':
        $GamesController->Show();
        break;
    case 'add':
        $GamesController->add();
        break;
    case 'addgen':
        $GamesController->addGEN();
        break;
    case 'delete':
        // obtengo el parametro de la acción
        $ID_Juego = $params[1];
        $GamesController->delete($ID_Juego);
        break;
    case 'deleteGEN':
        $Genero_ID = $params[1];
        $GamesController->deleteGEN($Genero_ID);
        case 'edit':
        $GamesController->editLibroAction($params[1]);
         break;
**FORMULARIO **
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
{include file='templates/header.tpl'}
 
 
<form class="form-alta" action="edit" method="post">
<input type="hidden" value="{$game->ID_Juego}">
 
<div class="form-group row margin-15px">
  <label for="autor" class="col-sm-2 col-form-label">Nombre:</label>
  <div class="col-sm-10">
    <input type="text" class="form-control" name="Nombre" value="{$game->Nombre}">
  </div>
</div>
<div class="form-group row margin-15px">
  <label for="autor" class="col-sm-2 col-form-label">Nombre:</label>
  <div class="col-sm-10">
    <input type="text" class="form-control" name="Fecha" value="{$game->Fecha}" >
  </div>
</div>
<div class="form-group row margin-15px">
  <label for="id_categoria" class="col-sm-2 col-form-label">Genero:</label>
  <div class="col-sm-10">
    <select class="form-select" name="Genero_ID">
    {foreach from=$generos item=$gen}
      <option value={$gen->Genero_ID}> {$gen->Genero} </option>
    {/foreach}
    </select>
  </div>
</div>
 
<div class="form-group row margin-15px">
  <label for="Precio" class="col-sm-2 col-form-label">Precio:</label>
  <div class="col-sm-10">
    <input type="number" class="form-control" " value="{$game->Precio}" name="Precio">
  </div>
</div>
<div class="form-group row margin-15px">
  <div class="col-sm-10  btn-sub-center">
    <button type="submit" class="btn btn-primary"  id="submit-create-libro">Editar libro</button>
  </div>
</div>
</form>
</div>
{include file='templates/footer.tpl'}
[b]----COMENTARIOS---


Creo que lo que no puedo hacer es que al hacer el submit me finalize el update... Ademas no se bien donde poner la funcion edit2juego de mi controlador... Gracias!!
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