Ir para conteúdo
Fórum Script Brasil
  • 0

Problema em update


azuma

Pergunta

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.

Editado por azuma
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...