Erro em Alterar registros no Form
Por favor,
Clicando no botão "Alterar" abre o form "myModal", mostrando os registros para alterar.
Ocorre que após fazer a alteração em qualquer campo mostra os erros.
>
Citar
! ) Notice: Undefined variable: id in C:\wamp\www\controleatividades\metadados\Index.php on line 119
Call Stack
#
Time
Memory
Function
Location
1
0.0009
391744
{main}( )
...\Index.php:0
( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\controleatividades\classes\Usuarios.php on line 83
( ! ) PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\controleatividades\classes\Usuarios.php on line 83
Call Stack
#
Time
Memory
Function
Location
1
0.0009
391744
{main}( )
...\Index.php:0
2
0.0064
427664
Usuarios->update( )
...\Index.php**:**119
3
0.0086
444256
[execute](http://www.php.net/PDOStatement.execute) ( )
...\Usuarios.php**:**83
Código página index.php
<?php
// Salvo em C:\wamp\controleatividades\metadados\Index.php;
//require_once 'classes/Usuarios.php';
function __autoload($class) {
require_once '../classes/' . $class . '.php';
}
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Controle de Atividades - Orientado a Objetos</title>
<!-- Bootstrap -->
<link href="../css/bootstrap.min.css" rel="stylesheet">
<script>
var ch = '<?php echo sha1(time()); ?>';
</script>
</head>
<body>
<div class="container">
<header>
<img src="imagens/logo.png"/>
<div class="well">
<h1 class="text-center">Controle de Atividades <br><span class="text-primary">Estudos</span></h1>
</div>
</header>
<!-- Form cadastrar -->
<div style="margin: 100px 0; text-align: center">
<?php
$usuario = new Usuarios();
// Cadastro de Usuario
if ( isset($_POST['cadastrar']) ):
$nome_atividade = $_POST['nome_atividade'];
$nome_livro = $_POST['nome_livro'];
$nome_autor = $_POST['nome_autor'];
$nome_editora = $_POST['nome_editora'];
$quant_fl = $_POST['quant_fl'];
$fl_parei = $_POST['fl_parei'];
$data_inicio = $_POST['data_inicio'];
$data_termino = $_POST['data_termino'];
$data_paralisacao = $_POST['data_paralisacao'];
$observacao = $_POST['observacao'];
$usuario->setNome_atividade($nome_atividade);
$usuario->setNome_livro($nome_livro);
$usuario->setNome_autor($nome_autor);
$usuario->setNome_editora($nome_editora);
$usuario->setQuant_fl($quant_fl);
$usuario->setFl_parei($fl_parei);
$usuario->setData_inicio($data_inicio);
$usuario->setData_termino($data_termino);
$usuario->setData_paralisacao($data_paralisacao);
$usuario->setObservacao($observacao);
if ($usuario->insert()) {
echo '<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<strong>OK!</strong> Incluido com sucesso!!! </div>';
} else {
echo '<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<strong>OK!</strong> Erro ao alterar!!! </div>';
}
endif;
//exclusao de Usuario
if (isset($_POST['excluir_ui'])){
$id = $_POST['id_ui'];
$usuario->delete($id);
}
// Alterar Usuario
if ( isset($_POST['alterar']) ) {
$id_registros = $_POST['id_uii'];
$nome_atividade = $_POST['nome_atividade'];
$nome_livro = $_POST['nome_livro'];
$nome_autor = $_POST['nome_autor'];
$nome_editora = $_POST['nome_editora'];
$quant_fl = $_POST['quant_fl'];
$fl_parei = $_POST['fl_parei'];
$data_inicio = $_POST['data_inicio'];
$data_termino = $_POST['data_termino'];
$data_paralisacao = $_POST['data_paralisacao'];
$observacao = $_POST['observacao'];
$usuario->setNome_atividade($nome_atividade);
$usuario->setNome_livro($nome_livro);
$usuario->setNome_autor($nome_autor);
$usuario->setNome_editora($nome_editora);
$usuario->setQuant_fl($quant_fl);
$usuario->setFl_parei($fl_parei);
$usuario->setData_inicio($data_inicio);
$usuario->setData_termino($data_termino);
$usuario->setData_paralisacao($data_paralisacao);
$usuario->setObservacao($observacao);
$usuario->update($id);
}
?>
<legend>Formulário Cadastrar</legend>
<form class="form-inline" method="post">
<div class="input-group">
<label class="col-xs-1">Atividade:</label>
<input name="nome_atividade" type="text" class="form-control">
<label class="col-xs-1">Livro:</label><br>
<input name="nome_livro" type="text" class="form-control">
<label class="col-xs-1">Autor:</label><br>
<input name="nome_autor" type="text" class="form-control">
<label class="col-xs-1">Editora:</label><br>
<input name="nome_editora" type="text" class="form-control">
<label class="col-xs-1">Quant.Fls:</label><br>
<input name="quant_fl" type="text" class="form-control">
<label class="col-xs-1">Fls. Parei:</label><br>
<input name="fl_parei" type="text" class="form-control">
<label class="col-xs-1">Início:</label><br>
<input name="data_inicio" type="text" class="form-control">
<label class="col-xs-1">Término:</label><br>
<input name="data_termino" type="text" class="form-control">
<label class="col-xs-1">Paralisação:</label><br>
<input name="data_paralisacao" type="text" class="form-control">
<label class="col-xs-1">Observação:</label><br>
<input name="observacao" type="text" class="form-control">
</div>
<div class="col-xs-pull-2" align="center">
<input name="cadastrar" type="submit" class="btn btn-success" value="Cadastrar">
</div>
</form>
</div>
<!-- Fim form cadastrar -->
<!-- Inicio da tabela -->
<table class="table table-striped table-bordered table-hover">
<thead>
<tr class="active">
<th>Atividade</th>
<th>Livro</th>
<th>Autor</th>
<th>Editora</th>
<th>Quant. fl</th>
<th>Fl Parei</th>
<th>Inicio</th>
<th>Término</th>
<th>Parei</th>
<th>Observação</th>
</tr>
</thead>
<tbody>
<?php foreach ($usuario->findAll() as $key => $value) { ?>
<tr>
<td> <?php echo $value->nome_atividade;?> </td>
<td> <?php echo $value->nome_livro;?> </td>
<td> <?php echo $value->nome_autor;?> </td>
<td> <?php echo $value->nome_editora;?> </td>
<td> <?php echo $value->quant_fl;?> </td>
<td> <?php echo $value->fl_parei;?> </td>
<td> <?php echo $value->data_inicio;?> </td>
<td> <?php echo $value->data_termino;?> </td>
<td> <?php echo $value->data_paralisacao;?> </td>
<td> <?php echo $value->observacao;?> </td>
<td>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal" onclick="load_modal
('<?php echo $value->nome_atividade;?>',
'<?php echo $value->nome_livro;?>',
'<?php echo $value->nome_autor;?>',
'<?php echo $value->nome_editora;?>',
'<?php echo $value->quant_fl;?>',
'<?php echo $value->fl_parei;?>',
'<?php echo $value->data_inicio;?>',
'<?php echo $value->data_termino;?>',
'<?php echo $value->data_paralisacao;?>',
'<?php echo $value->observacao;?>',
<?php echo $value->id_registros;?>);">Alterar</button>
<form class="form_excluir" method="post" style="float: left; margin: 0 15px;">
<input name="id_ui" type="hidden" value="<?php echo $value->id_registros;?>"/><button name="excluir_ui" type="submit" onclick="fn_excluir();" class="btn btn-danger">Excluir</button></form><!--Fernando C do forum descobriu erro no nome da função -->
</td>
</tr>
<?php } ?>
</tbody>
</table>
<!-- Fim da tabela -->
<!-- Modal para alterar Usuário -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Alterando Usuário</h4>
</div>
<div class="modal-body">
<form class="form-inline" method="post">
<div class="input-group">
<span class="input-group-addon glyphicon glyphicon-user"></span>
<input id="text_nome_atividade" name="nome_atividade" type="nome_atividade" class="form-control" required value="" >
</div>
<div class="input-group">
<span class="input-group-addon glyphicon glyphicon-user"></span>
<input id="text_nome_livro" name="nome_livro" type="text" class="form-control" required value="" >
</div>
<div class="input-group">
<span class="input-group-addon glyphicon glyphicon-user"></span>
<input id="text_nome_autor" name="nome_autor" type="text" class="form-control" required value="" >
</div>
<div class="input-group">
<span class="input-group-addon glyphicon glyphicon-user"></span>
<input id="text_nome_editora" name="nome_editora" type="text" class="form-control" required value="" >
</div>
<div class="input-group">
<span class="input-group-addon glyphicon glyphicon-user"></span>
<input id="text_quant_fl" name="quant_fl" type="text" class="form-control" required value="" >
</div>
<div class="input-group">
<span class="input-group-addon glyphicon glyphicon-user"></span>
<input id="text_fl_parei" name="fl_parei" type="text" class="form-control" required value="" >
</div>
<div class="input-group">
<span class="input-group-addon glyphicon glyphicon-user"></span>
<input id="text_data_inicio" name="data_inicio" type="text" class="form-control" required value="" >
</div>
<div class="input-group">
<span class="input-group-addon glyphicon glyphicon-user"></span>
<input id="text_data_termino" name="data_termino" type="text" class="form-control" required value="" >
</div>
<div class="input-group">
<span class="input-group-addon glyphicon glyphicon-user"></span>
<input id="text_data_paralisacao" name="data_paralisacao" type="text" class="form-control" required value="" >
</div>
<div class="input-group">
<span class="input-group-addon glyphicon glyphicon-user"></span>
<input id="text_observacao" name="observacao" type="text" class="form-control" required value="" >
</div>
<!--<input id="id_uii" name="id_uii" type="hidden" value=""/>-->
<!--Fernando C pede para substituir só alinha acima por essa linha -->
<input id="id_uii" name="id_uii" type="hidden" value=""/>
<input name="alterar" type="submit" class="btn btn-warning" value="Alterar">
</form>
</div>
</div>
</div>
</div> <!-- fim Modal -->
</div> <!-- fim cantainer -->
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://code.jquery.com/jquery-1.11.3.min.js" integrity="sha256-7LkWEzqTdpEfELxcZZlS6wAx5Ff13zZ83lYO2/ujj7g=" crossorigin="anonymous"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="../js/bootstrap.min.js"></script>
<script src="../js/script.js"></script>
}
</body>
</html>
O código do Usuários.php tem os seguinte código:
<?php//-------------------------------------------------------------
// PHP Data Objects (Objetos de Dados do PHP, em tradução livre)
// PDO é Orientado a Objetos
//-------------------------------------------------------------
// ============================================================
// Usuarios.php salvo em C:\wamp\www\phpoo\classes\Usuarios.php
//=============================================================
/**
* Description of Usuarios
*
* @author José Ivan
*/
require_once 'CrudUser.php';
class Usuarios extends CrudUser {
protected $tabela = 'tb_controleatividades';
public function findUnit($id) {
$sql = "SELECT * FROM $this->tabela WHERE id_registros = :id";
$stm = DB::prepare($sql);
$stm->bindParam(':id', $id, PDO::PARAM_INT);
$stm->execute();
return $stm->fetch();
}
public function findAll() {
$sql = "SELECT * FROM $this->tabela";
$stm = DB::prepare($sql);
$stm->execute();
return $stm->fetchAll();
}
public function insert() {
$sql = "INSERT INTO $this->tabela (nome_atividade, nome_livro, nome_autor, nome_editora, quant_fl, fl_parei, data_inicio, data_termino, data_paralisacao, observacao\n"
. ") VALUES (:nome_atividade, :nome_livro, :nome_autor, :nome_editora, :quant_fl, :fl_parei, :data_inicio, :data_termino, :data_paralisacao\n"
. ", :observacao)";
$stm = DB::prepare($sql);
$stm->bindParam(':nome_atividade', $this->nome_atividade);
$stm->bindParam(':nome_livro', $this->nome_livro);
$stm->bindParam(':nome_autor', $this->nome_autor);
$stm->bindParam(':nome_editora', $this->nome_editora);
$stm->bindParam(':quant_fl', $this->quant_fl);
$stm->bindParam(':fl_parei', $this->fl_parei);
$stm->bindParam(':data_inicio', $this->data_inicio);
$stm->bindParam(':data_termino', $this->data_termino);
$stm->bindParam(':data_paralisacao', $this->data_paralisacao);
$stm->bindParam(':observacao', $this->observacao);
return $stm->execute();
}
public function update($id) {
$sql = "UPDATE $this->tabela SET nome_atividade = :nome_atividade,
nome_livro = :nome_livro,
nome_autor = :nome_autor,
nome_editora = :nome_editora,
quant_fl = :quant_fl,
fl_parei = :fl_parei,
data_inicio = :data_inicio,
data_termino = :data_inicio,
data_paralisacao = :data_paralisacao,
observacao = :observacao,
\n"
. " WHERE id_registros = :id";
$stm = DB::prepare($sql);
$stm->bindParam(':id_registros', $id, PDO::PARAM_INT);
$stm->bindParam(':nome_atividade', $this->nome_atividade);
$stm->bindParam(':nome_livro', $this->nome_livro);
$stm->bindParam(':nome_autor', $this->nome_autor);
$stm->bindParam(':nome_editora', $this->nome_editora);
$stm->bindParam(':quant_fl', $this->quant_fl);
$stm->bindParam(':fl_parei', $this->fl_parei);
$stm->bindParam(':data_inicio', $this->data_inicio);
$stm->bindParam(':data_termino', $this->data_termino);
$stm->bindParam(':data_paralisacao', $this->data_paralisacao);
$stm->bindParam(':observacao', $this->observacao);
return $stm->execute();
}
public function delete($id) {
$sql = "DELETE FROM $this->tabela WHERE id_registros = :id_registros";
$stm = DB::prepare($sql);
$stm->bindParam(':id_registros', $id, PDO::PARAM_INT);
return $stm->execute();
}
}
No index.php linha 119:
>
Citar
$usuario->update($id);
Em Usuarios.php linha 83 é essa:
return $stm->execute();
A parte de "Excluir" registro funciona, também está cadastrando.
Muito obrigado.Discussão (38)
Carregando comentários...