Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

netocazuza

codigo adaptado não funciona

Recommended Posts

Gostaria que alguém me ajudasse a encontrar erro num código. Estou fazendo um curto na net, e tentando adaptar o código que funciona para ir aprimorando a aprendizagem. Então vou colocar dois códigos aqui, onde um funciona o outro não. O que funciona é o do curso com mais campos. O que fiz foi apenas adaptar esse código que funciona para uma quantidade bem menor, e ver se funciona. Os dois códigos abre o formulário, aparentemente consultam o banco com sucesso, porém só o original está alterando, certamente por algum erro meu. Mas já olhei trocentas vezes, postei dúvida lá no curso, e o cara não responde, então tô parado na aprendizagem por conta disso. Basicamente é um formulário de cadastro de transportadoras onde o usuário altera os dados de uma transportadora através desse formulário. Esse tá funcionando tudo certinho. Tentei reproduzir esse mesmo formulário, porém apenas com dois campos (cidade e estado), e mesmo assim não funciona. Lista certinho, mas não altera, por isso acho que é um erro simples. Segue os dois códigos pra que comparem:

CÓDIGO QUE FUNCIONA:

<?php require_once("conexao/conexao.php"); ?>
<?php
    if (isset($_POST["nometransportadora"])){
        $nome = utf8_decode($_POST["nometransportadora"]);
        $endereco = utf8_decode($_POST["endereco"]);
        $cidade = utf8_decode($_POST["cidade"]);
        $estado = $_POST["estados"];
        $cep = $_POST["cep"];
        $cnpj = $_POST["cnpj"];
        $telefone = $_POST["telefone"];
        $tID = $_POST["transportadoraID"];
        // CRIAR O OBJETO PARA ALTERAR
        $alterar = "UPDATE transportadoras ";
        $alterar .= "SET ";
        $alterar .= "nometransportadora = '{$nome}', ";
        $alterar .= "endereco = '{$endereco}', ";
        $alterar .= "cidade = '{$cidade}', ";
        $alterar .= "estadoID = {$estado}, ";
        $alterar .= "cep = '{$cep}', ";
        $alterar .= "cnpj = '{$cnpj}', ";
        $alterar .= "telefone = '{$telefone}' ";
        $alterar .= "WHERE transportadoraID = {$tID}";
        $operacao_alterar = mysqli_query($conecta, $alterar);
        if (!$operacao_alterar){
            die("Erro na alteração!");
        }else {
            header("location: listagem2.php");
        }
    }


    // Consulta a tabela de transportadoras.
    $tr = "SELECT * ";
    $tr .= "FROM transportadoras ";
    if (isset($_GET["codigo"])){
        $id = $_GET["codigo"];
        $tr .= "WHERE transportadoraID = {$id} ";
    }else {
        $tr .= "WHERE transportadoraID = 1 ";
    }
    $con_transportadora = mysqli_query($conecta, $tr);
    if (!$con_transportadora){
        die("Erro na consulta");
    }
    $info_transportadora = mysqli_fetch_assoc($con_transportadora);
    
    // Consulta aos estados
    $estados = "SELECT * ";
    $estados .= "FROM estados ";
    $lista_estados = mysqli_query($conecta, $estados);
    if (!$lista_estados){
        die("erro no banco");
    }

?>
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Curso PHP INTEGRACAO</title>
        
        <!-- estilo -->
        <link href="_css/estilo.css" rel="stylesheet">
        <link href="_css/alteracao.css" rel="stylesheet">
    </head>

    <body>
        <?php include_once("_incluir/topo.php"); ?>
        
        <main>  
            <div id="janela_formulario">
                <form action="alteracao.php" method = "post">
                    <h2>Alteração de Transportadoras</h2>
                    <label for="nometransportadora">Nome da Transportadora</label>
                    <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["nometransportadora"]) ?>" name = "nometransportadora" id = "nometransportadora">
                    <label for="endereco">Endereço</label>
                    <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["endereco"]) ?>" name = "endereco" id = "endereco">
                    <label for="cidade">Cidade</label>
                    <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["cidade"]) ?>" name = "cidade" id = "cidade">
                    <label for="estados">Estados</label>
                    <select id = "estados" name = "estados">
                        <?php 
                            $meuestado = $info_transportadora["estadoID"];
                            while ($linha = mysqli_fetch_assoc($lista_estados)){
                            $estado_principal = $linha["estadoID"];
                            if ($meuestado == $estado_principal){
                        ?>
                            <option value="<?php echo $linha["estadoID"] ?>" selected>
                                <?php echo utf8_encode($linha ["nome"]) ?>
                            </option>
                            <?php
                            } else { 
                            ?>
                                <option value="<?php echo $linha["estadoID"] ?>">
                                <?php echo utf8_encode($linha ["nome"]) ?>
                                </option>
                        <?php 
                            }
                            }
                        ?>
                        
                    </select>
                    <label for="cep">CEP</label>
                    <input type = "text" value = "<?php echo ( $info_transportadora["cep"]) ?>" name = "cep" id = "cep">
                    <label for="telefone">Telefone</label>
                    <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["telefone"]) ?>" name = "telefone" id = "telefone">
                    <label for="cnpj">CNPJ</label>
                    <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["cnpj"]) ?>" name = "cnpj" id = "cnpj">
                    <input type = "hidden" name = "transportadoraID" value = "<?php echo $info_transportadora["transportadoraID"] ?>">
                    <input type = "submit" value="Confirmar Alteração">
                </form>
            </div>
        </main>

        <?php include_once("_incluir/rodape.php"); ?>  
    </body>
</html>

 

CÓDIGO QUE NÃO FUNCIONA. (Lista tudo certinho, mas não altera, nem traz o estádo pré-checado).

<?php require_once("conexao/conexao.php"); ?>
<?php
    if( isset($_POST["nomeCidade"]) ) {
        $nomeCidade       = utf8_decode($_POST["nomeCidade"]);
        $estado     = $_POST["estados"];
        $cID        = $_POST["cidadeID"];
        
        // Objeto para alterar
        $alterar = "UPDATE cidades ";
        $alterar .= "SET ";
        $alterar .= "nomeCidade = '{$nomeCidade}', ";
        $alterar .= "estadoID = {$estado} ";
        $alterar .= "WHERE cidadeID = {$cID} ";
        $operacao_alterar = mysqli_query($conecta, $alterar);
        if(!$operacao_alterar) {
            die("Erro na alteracao");   
        } else {
            header("location:alterarCidades.php");   
        }
        
    }

    // Consulta a tabela de cidades
    $tr = "SELECT * ";
    $tr .= "FROM cidades ";
    if(isset($_GET["codigo"]) ) {
        $id = $_GET["codigo"];
        $tr .= "WHERE cidadeID = {$id} ";
    } else {
        $tr .= "WHERE cidadeID = 1 ";
    }
    
    $con_cidade = mysqli_query($conecta,$tr);
    if(!$con_cidade) {
        die("Erro na consulta");
    }

    $info_cidade = mysqli_fetch_assoc($con_cidade);
    

    // consulta aos estados
    $estados = "SELECT * ";
    $estados .= "FROM estados ";
    $lista_estados = mysqli_query($conecta, $estados);
    if(!$lista_estados) {
       die("erro no banco"); 
    }
   

?>
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Alteração Cidades</title>
        <!-- estilo -->
        <link href="_css/estilo.css" rel="stylesheet">
        <link href="_css/alteracao.css" rel="stylesheet">

    </head>

    <body>
        <?php include_once("_incluir/topo.php"); ?>
        

        <main>
            <div id="janela_formulario">
                <form action="alteracaoCidades.php" method="post">
                    <h2>Alteração de Cidades</h2>
                    
                    <label for="nomeCidade">Nome da Cidade</label>
                    <input type="text" value="<?php echo utf8_encode($info_cidade["nomeCidade"])  ?>" name="nomeCidade" id="nomeCidade">
                    <label for="estados">Estados</label>
                    <select id="estados" name="estados"> 
                        <?php 
                            $meuestado = $info_cidade["estadoID"];
                            while($linha = mysqli_fetch_assoc($lista_estados)) {
                                $estado_principal = $linha["estadoID"];
                                if($meuestado == $estado_principal) {
                        ?>
                            <option value="<?php echo $linha["estadoID"] ?>" selected>
                                <?php echo utf8_encode($linha["nome"]) ?>
                            </option>
                        <?php
                                } else {
                        ?>
                            <option value="<?php echo $linha["estadoID"] ?>" >
                                <?php echo utf8_encode($linha["nome"]) ?>
                            </option>                        
                        <?php 
                                }
                            }
                        ?>
                    </select>
                    <input type="hidden" name="cidadeID" value="<?php echo $info_cidade["cidadeID"] ?>">
                    <input type="submit" value="Confirmar alteração">                    
                </form>   
            </div>
        </main>

        <?php include_once("_incluir/rodape.php"); ?>
    </body>
</html>

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.