Jump to content


Photo

Selecionar E Deletar Dado Temporario Em Session


  • Faça o login para participar
8 replies to this topic

#1 Giovani Velasques

Giovani Velasques

    Turista

  • Usuários
  • 36 posts
  • Sexo:Masculino
  • Localidade:Dom Pedrito

Posted 20/01/2011, 09:13

Bom dia.
Estou com uma duvida um pouco complicada ao meu ver. Preciso selecionar e após isso
poder deletar um dado temporário armazenado em uma session. Vou tentar explicar melhor.
Tipo este dado temporario só vai ser armazenado no banco se eu der commit nesta session,
mas estou fazendo um tipo de grid dos dados q vou armazenando, mas surgiu a duvida pelo
fato de se o usuario inserir um dado temporario errado neste grid, então gostaria que o usuario
pudesse excluir este dado temporario inserido.
Postei o código de inserção para melhor entendimento no armazenamento de cada dado temporario:
if (isset($_POST['inserir_viagem_percurso'])){
            $codigo_estrada_tipo = $_POST['codigo_estrada_tipo'];
            $km_inicial          = $_POST['km_inicial'];
            $km_final            = $_POST['km_final'];
            $valor_km_atual      = $_POST['valor_km_atual'];
            
            $insere_viagem_percurso = ("INSERT INTO viagem_percurso(codigo_viagem, codigo_estrada_tipo, km_inicial, km_final,valor_km_atual)
                                       VALUES ({$_SESSION ['codigo_viagem_gerado']},'$codigo_estrada_tipo','$km_inicial', '$km_final','$valor_km_atual');"); 
            if($insere_viagem_percurso){
                if(isset($_SESSION['viagem_percurso_inserida'])){
                   $_SESSION['viagem_percurso_inserida'] .= $insere_viagem_percurso;
                }else{
                   $_SESSION['viagem_percurso_inserida'] = $insere_viagem_percurso; 
                } 
                echo"Kilometragem Salva!!!<br/>Preenncha os outros campos!";
             }    
        }
Se alguem poder me dar esta força desde já agradeço. Abraço

#2 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 20/01/2011, 10:51

Deixe pra montar o SQL só na hora de gravar. Quando for armazenar, utilize um array.

Ao armazenar temporariamente:

$_SESSION['viagem']['percurso'][] = array($codigo_estrada_tipo,$km_inicial,$km_final,$valor_km_atual);

Entenda que é um array multidimensional. Assim você pode usar o índice de 'percurso' pra identificar um registro em particular.

foreach($_SESSION['viagem']['percurso'] as $indice => $percurso){
// preenche a grid
}

Então, quando quiser excluir um, pode usar o índice do registro:

unset($_SESSION['viagem']['percurso'][$indice_excluir]);

Daí, quando for inserir no banco:

foreach($_SESSION['viagem']['percurso'] as $percurso){
mysql_query("INSERT INTO viagem_percurso (codigo_viagem, codigo_estrada_tipo, km_inicial, km_final,valor_km_atual)
VALUES ($codigo_viagem_gerado,'$percurso[0]','$percurso[1]','$percurso[2]','$percurso[3]');"
}

Edição feita por: LeoB, 20/01/2011, 10:51.


#3 Giovani Velasques

Giovani Velasques

    Turista

  • Usuários
  • 36 posts
  • Sexo:Masculino
  • Localidade:Dom Pedrito

Posted 20/01/2011, 13:04

Então, quando quiser excluir um, pode usar o índice do registro:

unset($_SESSION['viagem']['percurso'][$indice_excluir]);]

Não entendi como posso fazer esta parte de exclusão, pode ser mais especico?
Desde já te agradeço pela força esta sendo muito util. Abraço

Edição feita por: Giovani Velasques, 20/01/2011, 13:05.


#4 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 20/01/2011, 13:32

Olha só ...

Quando você tem um array, você pode apagar partes dele... ou ele inteiro.
O Leo Sugeriu que você guarde na sessão um array e no final você utilize ele para salvar no banco.
Essa é a maneira mais viável mesmo.

Então o que acontece é que se você tem um array você pode excluir somente o que o usuário selecionar.
Para o usuário são vários opções... e para você é somente um array.

Se você tiver um array assim:

$seu_array = array( "0" => "valor01", "1" => "valor02", "2" => "valor03" );

Você pode apagar o valor02 assim:

unset( $seu_array[1] );

E depois o seu array ficaria assim:

$seu_array = array( "0" => "valor01", "2" => "valor03" );

Assim você pode excluir dados da sessão...
Lembrando que a sessão não é nada mais do que um array também.
Então você vai chamar a sessão e apagar o item que você quer dela:

unset($_SESSION['teste']['carro']);

Abraço!
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#5 Giovani Velasques

Giovani Velasques

    Turista

  • Usuários
  • 36 posts
  • Sexo:Masculino
  • Localidade:Dom Pedrito

Posted 20/01/2011, 14:28

Não estou conseguindo fazer funcionar, abaixo vai o codigo e como estou inserindo na session:
if (isset($_POST['inserir_viagem_percurso'])){
            $codigo_estrada_tipo = $_POST['codigo_estrada_tipo'];
            $km_inicial          = $_POST['km_inicial'];
            $km_final            = $_POST['km_final'];
            $valor_km_atual      = $_POST['valor_km_atual'];
            
            $_SESSION['viagem_percurso']['percurso'][] = array($codigo_estrada_tipo,$km_inicial,$km_final,$valor_km_atual);
 }
Desta forma estou tentando inserir no BD:
foreach($_SESSION['viagem_percurso']['percurso'] as $percurso){   
                        $salva_viagem_percurso = pg_query($conexao,"INSERT INTO viagem_percurso (codigo_viagem, codigo_estrada_tipo, km_inicial, km_final,valor_km_atual)                
                                     VALUES ('{$_SESSION ['codigo_viagem_gerado']}','$percurso[0]','$percurso[1]','$percurso[2]','$percurso[3]')");
                       }

Edição feita por: Giovani Velasques, 20/01/2011, 14:28.


#6 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 20/01/2011, 15:05

Faltou dizer o erro.

#7 Giovani Velasques

Giovani Velasques

    Turista

  • Usuários
  • 36 posts
  • Sexo:Masculino
  • Localidade:Dom Pedrito

Posted 20/01/2011, 15:17

Faltou dizer o erro.

Pois é ai que esta, não gera erro. Apenas não salva.

#8 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 20/01/2011, 16:33

Imprima o erro então
$salva_viagem_percurso = pg_query($conexao,"INSERT INTO viagem_percurso (codigo_viagem, codigo_estrada_tipo, km_inicial, km_final,valor_km_atual) VALUES ('{$_SESSION ['codigo_viagem_gerado']}','$percurso[0]','$percurso[1]','$percurso[2]','$percurso[3]')");

if($salva_viagem_percurso){
echo 'Salvou';
}else{
echo 'Não salvou: ' . pg_last_error();
}


#9 Giovani Velasques

Giovani Velasques

    Turista

  • Usuários
  • 36 posts
  • Sexo:Masculino
  • Localidade:Dom Pedrito

Posted 21/01/2011, 08:59

Bom dia LeoB.
Consegui solucionar o problema ao salvar...
Muito obrigado.

Edição feita por: Giovani Velasques, 21/01/2011, 09:10.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq