Ir para conteúdo
Fórum Script Brasil

azuma

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que azuma postou

  1. azuma

    Problema em update

    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'); ?> <html lang="en"> <head> <meta charset="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> <a href="index.php">Voltar</a> <?php // orientada a objetos $ligacao = new mysqli($hostdb,$userdb,$passdb,$namedb); // sai do script se houver erro if ($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'); ?> <html lang="en"> <head> <meta charset="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> <a href="index.php">Voltar</a> <?php // orientada a objetos $ligacao = new mysqli($hostdb,$userdb,$passdb,$namedb); // sai do script se houver erro if ($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> Alguém sabe o erro? obrigado.
×
×
  • Criar Novo...