Ir para conteúdo
ustogo

Insert ID

Recommended Posts

Olá amigos.

Vim aqui discutir com vocês um problema que tive agora, e muito sinistro...

 

Eu faço uma inserção no banco com o arquivo cadastro.php

 

Ao fim do código eu coloco:

$id = mysqli_insert_id($My);

if($sql_insere){

echo "<script>window.location.href='abre_registro.php?id=$id';</script>";

}

 

Redireciona normalmente, mas diz que o registro não existe.

Porém se eu selecionar o endereço no browser e der um enter para executar a url de novo ele abre o registro.

 

Já coloquei um sleep(10); pensando que era porquê o registro ainda não estava no banco, mas não é. Não tem jeito pra mim.

 

Ele só abre quando eu vou lá no browser e mando ir para a url novamente.

 

Alguém ja passou por isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Remova o echo de redirecionamento do if, ficando assim:

 

$id = mysqli_insert_id($My);

if($sql_insere){
}
echo "<script>window.location.href='abre_registro.php?id=$id';</script>";

 

Creio que a lógica como está tentando fazer é:

 

$sql_insert > Redirecione;

 

$sql_insere = insert > redirecione

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentei assim também... é muito sinistro... 

 

já inseri, dei um sleep(10); e sem IF redirecionei pra pagina do ítem.

Diz que o ítem não existe, dei um var_dump, ele pega todas as variaveis, e o mysqli_num_rows dá 0

 

De qualquer forma de redirecionamento js que eu fizer ele não funciona, somente se eu fizer manual, tanto na url como num botão.

 

ja dei um sleep de 10 segundos e redirecionei pra outro php que redireciona pra pagina do item, mas nem com esse redirecionamento deu certo... dá sempre 0 no mysqli_num_rows, doideira hein!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que a questão toda é a variável $id.

 

Não sei mas está tentando acessar essa variável no arquivo que é redirecionado (no caso abre_registro.php)?

Porque não funciona. Uma VAR só pode ser acessada no mesmo arquivo onde ela é criada.

 

Faz o seguinte para depuração. No arquivo abre_registro.php comente todo o código que fez e coloque logo no início:

var_dump($_GET) e veja o que a global get executa nesse arquivo.

Se estiver correto deve vim um INTERGER completando o índice id.

Ou seja se estiver recebendo o dado corretamente no arquivo. O problema está na forma em que esse dado é manuseado no abre_registro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Lucas HirÔakíì
      Olá, estou  quebrando a cabeça para resolver este erro, 
       
      Esse código baixo deveria pegar dados de uma parâmetro de um formulário, e enviar para a variável $apelido = $_GET ["apelido"] dessa formar na linha abaixo do código jogar os dados da tabela usuarios_sigav e jogar na criacao_user, e o php me retorna a mensagem Parse error: syntax error, unexpected ')' in C:\xampp\htdocs\Homologar\solicitacao.php on line 4
       
       
      <?php
      $conexao = mysqli_connect('localhost', 'root', 'b@nco@@p', 'cr_em');
      $apelido = $_GET ["apelido"];
      $query = "INSERT INTO criacao_user (nome, apelido, gerente, gerente_2, email_p) SELECT nome, apelido, gerente, gerente_2, email_p FROM usuarios_sigav  WHERE = '{$apelido}' ");
      mysqli_query($conexao, $query);
      mysqli_close($conexao);
      ?>
       
      Quem se disponibilizar para ajudar agradeço! 
    • Por netocazuza
      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>  
       
       
       
    • Por MARI SANTOS
      Estou desenvolvendo um controle de estoque,  fiz as seguintes tabelas:
      Produto -  É dos itens adicionados; nessa tabela eu coloquei todas as informações sobre o produto
      SaidaProduto - itens vendidos
      Estoque - itens que estão no estoque, somente a qtdde e codigo e nome
      NotaFiscal.
       
      Meu objetivo é cadastrar os produtos pelo xml da nota fiscal e tbém manualmente. A tabela saidaProduto e produto irão refletir na de estoque, até ai tudo bem, mas quando eu penso na tabela nota fiscal e como ela vai se relacionar com o produto me dá um nó na cabeça.
      Seria mais interessante eu fazer uma outra tabela de entrada_produto e ela sim, ter o relacionamento N:N com a tabela Nota fiscal?
      e os produtos da nota fiscal estariam nessa tabela entrada_produto?
      Alguém poderia me dá um norte, pfvor?
       
       

×

Informação importante

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