Boa tarde, eu estou a tentar fazer update de texto que tenho na base de dados mas apenas consigo editar 3 campos da base de dados... com esse código funciona , no entanto quando adiciono mais 2 campos para editar deixa tudo de funcionar e não edita nada... Este é o código que funciona com 3 campos
<!DOCTYPE html><?php
require_once('config.php');?><htmllang="en"><head><metacharset="utf-8"><title>Exemplo 1 - BD</title><style>
body {font-size:16px; font-family: sans-serif;}</style><script>function fazOperacao(operacao,id){
window.location.href ='consulta.php?op='+ operacao +'&id='+ id;}</script></head><body><h1>Os meus contactos</h1><ahref="index.php">Voltar</a><?php
// orientada a objetos
$ligacao =new mysqli($hostdb,$userdb,$passdb,$namedb);// sai do script se houver erroif($ligacao->connect_error){die("erro de ligação");}// ----------------------------------------------------------// Resolução de problemas com codificação de carateres// ----------------------------------------------------------// Para verificação de codificação ativa// echo ("Codificação atual: " . $ligacao->character_set_name());// ----------------------------------------------------------// Alteração do charset
$ligacao->set_charset("utf8");// ----------------------------------------------------------// $_GET e $_POST são "superglobals": estão sempre acessíveis na página, independentemente do scope // (ver detalhe de cada uma abaixo)// verificação da existência do parâmetro 'op' na Querystring// caso exista significa que foi dada ordem para 'Apagar' ou 'Editar'// // $_GET representa um array de variáveis enviadas para uma página PHP através de parâmetros no URL.if(isset($_GET['op'])){
$id_contato = $_GET['id'];if($_GET['op']=='delete'){// ----------------------------------------------------------// ELIMINAR um registo// ----------------------------------------------------------
$query ="DELETE FROM contactos WHERE id_contacto = ". $id_contato;
$resultado = $ligacao->query($query);} elseif ($_GET['op']=='update'){// ----------------------------------------------------------// SELEÇÃO apenas de um registo (conforme o escolhido na listagem)// para preenchimento do formulário de edição// ----------------------------------------------------------
$query ="SELECT * FROM contactos WHERE id_contacto = ". $id_contato;
$resultado = $ligacao->query($query);if($registo = $resultado->fetch_object()){
echo '<form method="post" action="consulta.php">';
echo '<input type="hidden" name="id" value="'.$registo -> id_contacto.'" ></div>';
echo '<div>Quem <input type="text" name="quem" value="'.$registo -> quem.'" ></div>';
echo '<div>Proposito <input type="text" name="proposito" value="'.$registo -> proposito.'" ></div>';
echo '<div>creche <input type="text" name="creche" value="'.$registo -> creche.'" ></div>';
echo '<input type="submit" value="Gravar">';
echo '</form>';}}}// verificação da existência do parâmetro 'id' passado por HTTP POST.// Este envio apenas acontece, nesta página, para o caso do envio dos dados para atualização na BD,// ou seja, significa que estamos a enviar dados para atualização de um registo específico.// // $_POST representa um array de variáveis enviadas para uma página PHP através do método HTTP POST.
elseif (isset($_POST['id'])){
$id_contato = $_POST['id'];
$novo_quem = $_POST['quem'];
$novo_proposito = $_POST['proposito'];
$novo_creche = $_POST['creche'];
$query ="UPDATE contactos SET ";
$query .="quem = '". $novo_quem ."',";
$query .="proposito = '". $novo_proposito ."',";
$query .="creche = '". $novo_creche ."'";
$query .=" WHERE id_contacto = ". $id_contato;// echo $query;
$resultado = $ligacao->query($query);
echo "<div>Dados atualizados</div>";}
$query ="SELECT * FROM contactos";
$resultado = $ligacao->query($query);while($registo = $resultado->fetch_object()){
echo "<ul>";
echo "<li>". $registo -> quem ."</li>";
echo "<li>". $registo -> proposito ."</li>";
echo "<li>". $registo -> creche ."</li>";
echo "</ul>";?>
<input type="button" value="Apagar" onClick="javascript: fazOperacao('delete',<?php echo $registo -> id_contacto;?>);">
<input type="button" value="Editar" onClick="javascript: fazOperacao('update',<?php echo $registo -> id_contacto;?>);">
<?php
}?></body></html>
Agora neste código adicionei 2 campos e deixa de editar :s
<!DOCTYPE html><?php
require_once('config.php');?><htmllang="en"><head><metacharset="utf-8"><title>Exemplo 1 - BD</title><style>
body {font-size:16px; font-family: sans-serif;}</style><script>function fazOperacao(operacao,id){
window.location.href ='consulta.php?op='+ operacao +'&id='+ id;}</script></head><body><h1>Os meus contactos</h1><ahref="index.php">Voltar</a><?php
// orientada a objetos
$ligacao =new mysqli($hostdb,$userdb,$passdb,$namedb);// sai do script se houver erroif($ligacao->connect_error){die("erro de ligação");}// ----------------------------------------------------------// Resolução de problemas com codificação de carateres// ----------------------------------------------------------// Para verificação de codificação ativa// echo ("Codificação atual: " . $ligacao->character_set_name());// ----------------------------------------------------------// Alteração do charset
$ligacao->set_charset("utf8");// ----------------------------------------------------------// $_GET e $_POST são "superglobals": estão sempre acessíveis na página, independentemente do scope // (ver detalhe de cada uma abaixo)// verificação da existência do parâmetro 'op' na Querystring// caso exista significa que foi dada ordem para 'Apagar' ou 'Editar'// // $_GET representa um array de variáveis enviadas para uma página PHP através de parâmetros no URL.if(isset($_GET['op'])){
$id_contato = $_GET['id'];if($_GET['op']=='delete'){// ----------------------------------------------------------// ELIMINAR um registo// ----------------------------------------------------------
$query ="DELETE FROM contactos WHERE id_contacto = ". $id_contato;
$resultado = $ligacao->query($query);} elseif ($_GET['op']=='update'){// ----------------------------------------------------------// SELEÇÃO apenas de um registo (conforme o escolhido na listagem)// para preenchimento do formulário de edição// ----------------------------------------------------------
$query ="SELECT * FROM contactos WHERE id_contacto = ". $id_contato;
$resultado = $ligacao->query($query);if($registo = $resultado->fetch_object()){
echo '<form method="post" action="consulta.php">';
echo '<input type="hidden" name="id" value="'.$registo -> id_contacto.'" ></div>';
echo '<div>Quem <input type="text" name="quem" value="'.$registo -> quem.'" ></div>';
echo '<div>Proposito <input type="text" name="proposito" value="'.$registo -> proposito.'" ></div>';
echo '<div>Como <input type="text" name="como" value="'.$registo -> como.'" ></div>';
echo '<div>creche <input type="text" name="creche" value="'.$registo -> creche.'" ></div>';
echo '<div>Encarregado <input type="text" name="encarregado" value="'.$registo -> encarregado.'" ></div>';
echo '<input type="submit" value="Gravar">';
echo '</form>';}}}// verificação da existência do parâmetro 'id' passado por HTTP POST.// Este envio apenas acontece, nesta página, para o caso do envio dos dados para atualização na BD,// ou seja, significa que estamos a enviar dados para atualização de um registo específico.// // $_POST representa um array de variáveis enviadas para uma página PHP através do método HTTP POST.
elseif (isset($_POST['id'])){
$id_contato = $_POST['id'];
$novo_quem = $_POST['quem'];
$novo_proposito = $_POST['proposito'];
$novo_como = $_POST['como'];
$novo_creche = $_POST['creche'];
$novo_encarregado = $_POST['encarregado'];
$query ="UPDATE contactos SET ";
$query .="quem = '". $novo_quem ."',";
$query .="proposito = '". $novo_proposito ."',";
$query .="como = '". $novo_como ."'";
$query .="creche = '". $novo_creche ."'";
$query .="encarregado = '". $novo_encarregado ."'";
$query .=" WHERE id_contacto = ". $id_contato;// echo $query;
$resultado = $ligacao->query($query);
echo "<div>Dados atualizados</div>";}
$query ="SELECT * FROM contactos";
$resultado = $ligacao->query($query);while($registo = $resultado->fetch_object()){
echo "<ul>";
echo "<li>". $registo -> quem ."</li>";
echo "<li>". $registo -> proposito ."</li>";
echo "<li>". $registo -> como ."</li>";
echo "<li>". $registo -> creche ."</li>";
echo "<li>". $registo -> encarregado ."</li>";
echo "</ul>";?>
<input type="button" value="Apagar" onClick="javascript: fazOperacao('delete',<?php echo $registo -> id_contacto;?>);">
<input type="button" value="Editar" onClick="javascript: fazOperacao('update',<?php echo $registo -> id_contacto;?>);">
<?php
}?></body></html>
Pergunta
azuma
Boa tarde, eu estou a tentar fazer update de texto que tenho na base de dados mas apenas consigo editar 3 campos da base de dados... com esse código funciona , no entanto quando adiciono mais 2 campos para editar deixa tudo de funcionar e não edita nada... Este é o código que funciona com 3 campos
Agora neste código adicionei 2 campos e deixa de editar :s
Alguém sabe o erro? obrigado.
Editado por azumaLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.