Ir para conteúdo

POWERED BY:

Arquivado

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

Remazela

PHP - Após Gravar Dados RECUPERAR o ID

Recommended Posts

Caros amigos

Por favor me perdoa, ma humildemente peço ajuda, pois já fiz várias pesquisas e vários teste no meu código, mas infelizmente não tive sucesso, embora acredito que este tema deva ser muitas dúvidas de programadores (inexperiente).

Após clicar no Botão Cadastrar, quero recuperar o ID para a próxima Página onde o usuário irá acrescentar ou alterar informação, no banco

Observação: tentei usar a função lastInsertId(), mas não consigo recuperar o ID para a próxima página.

Meu código Fonte:

    <form name="frm_mens" id="frm_mens" action="" enctype="multipart/form-data" method="post" >
         <button name="button" onclick="return confirm('Deseja Criar uma Nova Mensagem?');">Cadastrar</button>
    </form>   

    <?php 

      //Condição de execução
      if(isset($_POST['button'])){

        $mensDtInicio = date('Y-m-d H:m:s');        
        $mensDtFim    = date('Y-m-d H:m:s');        
        $mensStatus   = '1';                       

        $sql = 'INSERT INTO mensagem (mensDtInicio, mensDtFim, clienteId, mensStatus) 
                     VALUES (:mensDtInicio, :mensDtFim, :clienteId, :mensStatus)';

        try{
            $query = $conecta->prepare($sql);      
            $query->bindValue(':mensDtInicio',$mensDtInicio,PDO::PARAM_STR);
            $query->bindValue(':mensDtFim',$mensDtFim,PDO::PARAM_STR);            
            $query->bindValue(':clienteId',$clienteId,PDO::PARAM_STR);   
            $query->bindValue(':mensStatus',$mensStatus,PDO::PARAM_STR);                                         
            $query->execute();         

            echo '<div class="comunicado">Mensagem Cadastrada com Sucesso!</div><!--aviso-->';

            //Redirecionando 
            echo '<meta http-equiv="refresh" content="2, URL=painel.php?exe=mensagem-cliente/mens_nova" />';
            
            //Aqui tento recuperar o ID e transportar para a página mens_nova
            $mensId = $conecta->lastInsertId(); 

          } catch(PDOexception $e) {
            echo 'Erro ao Cadastrar a Mensagem '.$e->getMessage();
          }

      }

    ?>   

Grato,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

Acho que você deve passá-lo como parâmetro no redirecionamento

//movi para cima esta linha
$mensId = $conecta->lastInsertId(); 
//Redirecionando 
echo '<meta http-equiv="refresh" content="2, URL=painel.php?exe=mensagem-cliente/mens_nova&id_mensagem='.$mensId.'" />';

Na outra página você recupera

$OIdRecuperado = $_GET['id_mensagem'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que você deve passá-lo como parâmetro no redirecionamento

//movi para cima esta linha
$mensId = $conecta->lastInsertId(); 
//Redirecionando 
echo '<meta http-equiv="refresh" content="2, URL=painel.php?exe=mensagem-cliente/mens_nova&id_mensagem='.$mensId.'" />';

Na outra página você recupera

$OIdRecuperado = $_GET['id_mensagem'];

Caro amigo

Fiz conforme sua orientação, mas infelizmente não recupera o ID.

No Banco é Gravado, mas para a próxima página, o ID não Passa.

Grato,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Remazela, você debugou seu código antes do envio? Veja se o $mensId está indo em branco ou não.

Caro amigo

Os campos abaixo são gravados

$query = $conecta->prepare($sql);

$query->bindValue(':mensDtInicio',$mensDtInicio,PDO::PARAM_STR);

$query->bindValue(':mensDtFim',$mensDtFim,PDO::PARAM_STR);

$query->bindValue(':clienteId',$clienteId,PDO::PARAM_STR);

$query->bindValue(':mensStatus',$mensStatus,PDO::PARAM_STR);

$query->execute();

Debuguei, somente na próxima página não consigo recuperar o ID.

Testei várias vezes, grava mas não recupero.

Após o comando:

$mensId = $conecta->lastInsertId();

Coloquei:

echo '<div class="comunicado">'.$mensId.'</div><!--aviso-->'; //Mostra os ID gravados
Como faço para recuperar na próxima página, usei $_GET e $_POST nas não tive sucesso.
Grato,
Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste echo, o $mensId é mostrado certinho?

Caro amigo,

É mostrado corretamente.

Meu código que grava está assim:

    <form name="frm_mens" id="frm_mens" action="" enctype="multipart/form-data" method="post" >
         <button name="button" onclick="return confirm('Deseja Criar uma Nova Mensagem?');">Cadastrar</button>
    </form>   

    <?php 

      //Condição de execução
      if(isset($_POST['button'])){

        $mensDtInicio = date('Y-m-d H:m:s');        
        $mensDtFim    = date('Y-m-d H:m:s');        
        $mensStatus   = '1';                       

        $sql = 'INSERT INTO mensagem (mensDtInicio, mensDtFim, clienteId, mensStatus) 
                     VALUES (:mensDtInicio, :mensDtFim, :clienteId, :mensStatus)';

        try{
            $query = $conecta->prepare($sql);      
            $query->bindValue(':mensDtInicio',$mensDtInicio,PDO::PARAM_STR);
            $query->bindValue(':mensDtFim',$mensDtFim,PDO::PARAM_STR);            
            $query->bindValue(':clienteId',$clienteId,PDO::PARAM_STR);   
            $query->bindValue(':mensStatus',$mensStatus,PDO::PARAM_STR);                                         
            $query->execute();         

            echo '<div class="comunicado">Mensagem Cadastrada com Sucesso!</div><!--aviso-->';

            //Aqui tento recuperar o ID e transportar para a página mens_nova
            $mensId = $conecta->lastInsertId(); 

            //Redirecionando 
            echo '<meta http-equiv="refresh" content="2, URL=painel.php?exe=mensagem-cliente/mens_nova&mensNum='.$mensId.'" />';
            
           //na URL mostra certinho, cada ID gravado.

          } catch(PDOexception $e) {
            echo 'Erro ao Cadastrar a Mensagem '.$e->getMessage();
          }

      }

    ?> 

No mens_nova.php ------ está assim:

<div id="content">

   <?php include_once("menu.php");?>     

   <div id="content_conteudo">

    <?php 

    //Variável Passada da Página Anterior
    $mensIdGet = isset($_GET['mensId']) ? $_GET['mensId'] : false;
    $mensId    = isset($_POST['mensId']) ? $_POST['mensId'] : $mensIdGet;     

      if(isset($_POST['executar']) && $_POST['executar'] == 'Avançar'){
        $mensNumero    = $mensId.'.'.$clienteId;             
        $mensObserva   = strip_tags(trim($_POST['mensObserva']));                        
        $desc_categ    = strip_tags(trim($_POST['desc_categ']));            

              //Alterando o Banco de Dados - para incluir o dado
		$sql_M = 'UPDATE mensagem SET mensObserva = :mensObserva,
 		                              desc_categ = :desc_categ
		                        WHERE mensId = :mensId';
							   
		try{
			//query de execução
			$query_M = $conecta->prepare($sql_M);
			$query_M->bindValue(':mensObserva',$mensObserva,PDO::PARAM_STR);
			$query_M->bindValue(':desc_categ',$desc_categ,PDO::PARAM_STR);
			$query_M->bindValue(':mensId',$mensId,PDO::PARAM_STR);
			$query_M->execute();

            echo '<br/>';
            echo '<div class="comunicado">Mensagem Criada com Sucesso!</div><!--aviso-->';
            echo '<br/>';
            echo '<br/>';

            //Redirecionando
            echo '<meta http-equiv="refresh" content="2, URL=painel.php?exe=mensagem-cliente/mensagem" />';
			
		}catch(PDOexception $error_updateM){
		   echo 'Erro ao atualizar a Mensagem'.$error_updateM->getMessage();	
		}
      }

?> 


    <form name="cot_2" id="cot_2" action="" method="post" enctype="multipart/form-data">  

      <p class="p_esp">
        <label> 
          <span>Observação:</span><br/>
                  
            <textarea name="mensObserva" rows="5" cols="100"></textarea>              
        </label>
      </p>

      <p class="p_esp">
        <label>
          <span>Categoria...:</span>

            <select name="desc_categ">
              <option>Selecione</option>
              <?php 
                $cnx = mysql_connect("localhost", "root", "");
                mysql_select_db("bd_mens", $cnx);              
                $resultado = mysql_query("SELECT * FROM categoria ORDER BY desc_categ ASC ");
                while($categ = mysql_fetch_assoc($resultado)){
                  ?>
                    <option value="<?php echo $categ["desc_categ"]; ?>"><?php echo $categ["desc_categ"];?></option>
                  <?php
                }
              ?>
            </select>

        </label>
      </p>  

      <p class="p_esp">
        <input type="hidden" name="mensId" value="<?php echo $mensId;?>" />
       
        <input class="btn_novo" type="submit" name="executar" id="executar" value="Avançar" />
      </p>

    </form>
     
 </div><!--conteudo-->

</div><!--contet-->
     
<?php include_once("footer.php");?>

Sinceramente, não entendo porque não consigo recuperar o ID.

Grato,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, na página que grava, você está passando o parâmetro como mensNum. Na página que recupera, está tentando recuperar usando mensId. Acho que você trocou as nomenclaturas, e aí não está conseguindo recuperar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, na página que grava, você está passando o parâmetro como mensNum. Na página que recupera, está tentando recuperar usando mensId. Acho que você trocou as nomenclaturas, e aí não está conseguindo recuperar.

Caro amigo

Deus o abençoa, deu certo.

Valeu,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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