andrelimaverde
Members-
Total de itens
6 -
Registro em
-
Última visita
Reputação
0 ComumSobre andrelimaverde
-
Salvar formulário PHP PDO Banco de Dados
andrelimaverde respondeu ao tópico de andrelimaverde em MySQL
Omar, teria uma dica de como implementar esse código de uma melhor maneira. Por exemplo, já estou usando o UPDATE perfeitamente, mas estou com dificuldades no WHERE id= . Não consegui usar a função lastInsertId, como na primeira página fazemos o INSERT teria uma maneira de fazer o UPDATE no último ID inserido no caso pela sessão atual? Pode exemplificar? -
Salvar formulário PHP PDO Banco de Dados
andrelimaverde respondeu ao tópico de andrelimaverde em MySQL
Certo Omar, vou testar essa função, estava tendo problemas pois estava usando o UPDATE com WHERE id=LAST_INSERT_ID(); não fazia idéia de como implementar, agora vou ver como armazeno esse valor e retorno com resultado. -
Salvar formulário PHP PDO Banco de Dados
andrelimaverde respondeu ao tópico de andrelimaverde em PHP
Entendi Gleyson, vou testar essa solução e volto com resultado. Encontrei essa função para obter o ultimo ID registrado SELECT LAST_INSERT_ID(). -
Pessoal desde já agradeço a todos, e vamos lá. Primeiro esclareço que meu conhecimento em PHP é básico e em MYSQL praticamente nulo... Meu objetivo é: Salvar dados do formulário (3 páginas) no mesmo ID (mesma linha) do banco de dados. Tenho: <!-- PÁGINA INDEX.PHP --> <?php session_start(); ?> <html> <form method="POST" action="1.php"> <input type="text" name="namenome" placeholder="Nome"> <input type="text" name="namesobrenome" placeholder="Sobrenome"> <input type="radio" name="radio" value="Masculino"> <input type="radio" name="radio" value="Feminino"> <input type="submit" name="namebtn" value="Próximo Passo"> </form> </html> E assim são as outras duas páginas, exemplificando, muito simples... No Index o FORM tem action="1.php" Na Pagina2 o FORM tem action="2.php" e assim sucessivamente. 1.php funcionando perfeitamente: <?php session_start(); include_once 'conexao.php'; //conexao.php somente faz a conexão com banco de dados, define as credenciais e atrubi a variável $conn //$conn = new PDO('mysql:host=' . HOST . ';dbname=' . DBNAME . ';', USER, PASS); $btn = filter_input(INPUT_POST, 'namebtn', FILTER_SANITIZE_STRING); if($btn){ //Recebe os dados do form $nom = filter_input(INPUT_POST, 'namenome', FILTER_SANITIZE_STRING); $sob = filter_input(INPUT_POST, 'namesobrenome', FILTER_SANITIZE_STRING); $rad = filter_input(INPUT_POST, 'radio', FILTER_SANITIZE_STRING); //Insere os dados no banco $get_data = "INSERT INTO info_tabela (nome, sobrenome, sexo) VALUES (:namenome, :namesobrenome, :radio)"; $insert_data = $conn->prepare($get_data); $insert_data->bindParam(':namenome', $nom); $insert_data->bindParam(':namesobrenome', $sob); $insert_data->bindParam(':radio', $rad); if($insert_data->execute()){ header("Location:pagina2.php"); //Se enviar corretamente redireciona para segunda página }else{ $_SESSION['msg'] = "<p style='color:tomato;background:#fff;'>Não foi possível enviar suas informações, verifique e tente novamente.</p>"; header("Location:index.php"); //Se não apresenta o erro } }else{ $_SESSION['msg'] = "<p style='color:tomato;'>Não foi possível enviar suas informações, verifique e tente novamente.</p>"; header("Location:index.php"); } Até ai tudo bem, insere corretamente os dados nas respectivas colunas da tabela ID=1, NOME= 'nome', SOBRENOME= 'sobrenome', SEXO= 'sexo'. No Banco de Dados ainda temos as colunas a serem preenchidas no mesmo ID(mesma linha) --> CIDADE= ' ', ENDEREÇO= ' ', CEP= ' ', Que referem-se à pagina2.php: <!-- PÁGINA PAGINA2.PHP --> <?php session_start(); ?> <html> <form method="POST" action="2.php"> <!-- ACTION 2.PHP RESPECTIVAMENTE --> <input type="text" name="namecidade" placeholder="Cidade"> <input type="text" name="nameendereco" placeholder="Endereço"> <input type="tex" name="namecep" placeholder="Cep"> <input type="submit" name="namebtn" value="Próximo Passo"> </form> </html> O problema, é que ao enviar o formulário com action="2.php" cujo arquivo possui o mesmo código que o "1.php" mudando somente os dados recebidos, No Banco de Dados é criado um novo ID(2) ou seja, uma nova linha, com os dados atuais nas colunas (cidade, endereço, cep) preenchidos, e as colunas anteriores (nome, sobrenome, sexo) vazias... Pessoal esta é a minha dúvida, como resolver, salvar todos os dados num mesmo id, mesma linha. O código do arquivo 2.php é o mesmo pois não faço ideia de como implementar isso, como em soluções anteriores tais dados costumava enviar com PhpMailer para e-mail então não entendo de MYSQL.
-
Pessoal desde já agradeço a todos, e vamos lá. Primeiro esclareço que meu conhecimento em PHP é básico e em MYSQL praticamente nulo... Meu objetivo é: Salvar dados do formulário (3 páginas) no mesmo ID (mesma linha) do banco de dados. Tenho: <!-- PÁGINA INDEX.PHP --> <?php session_start(); ?> <html> <form method="POST" action="1.php"> <input type="text" name="namenome" placeholder="Nome"> <input type="text" name="namesobrenome" placeholder="Sobrenome"> <input type="radio" name="radio" value="Masculino"> <input type="radio" name="radio" value="Feminino"> <input type="submit" name="namebtn" value="Próximo Passo"> </form> </html> E assim são as outras duas páginas, exemplificando, muito simples... No Index o FORM tem action="1.php" Na Pagina2 o FORM tem action="2.php" e assim sucessivamente. 1.php funcionando perfeitamente: <?php session_start(); include_once 'conexao.php'; //conexao.php somente faz a conexão com banco de dados, define as credenciais e atrubi a variável $conn //$conn = new PDO('mysql:host=' . HOST . ';dbname=' . DBNAME . ';', USER, PASS); $btn = filter_input(INPUT_POST, 'namebtn', FILTER_SANITIZE_STRING); if($btn){ //Recebe os dados do form $nom = filter_input(INPUT_POST, 'namenome', FILTER_SANITIZE_STRING); $sob = filter_input(INPUT_POST, 'namesobrenome', FILTER_SANITIZE_STRING); $rad = filter_input(INPUT_POST, 'radio', FILTER_SANITIZE_STRING); //Insere os dados no banco $get_data = "INSERT INTO info_tabela (nome, sobrenome, sexo) VALUES (:namenome, :namesobrenome, :radio)"; $insert_data = $conn->prepare($get_data); $insert_data->bindParam(':namenome', $nom); $insert_data->bindParam(':namesobrenome', $sob); $insert_data->bindParam(':radio', $rad); if($insert_data->execute()){ header("Location:pagina2.php"); //Se enviar corretamente redireciona para segunda página }else{ $_SESSION['msg'] = "<p style='color:tomato;background:#fff;'>Não foi possível enviar suas informações, verifique e tente novamente.</p>"; header("Location:index.php"); //Se não apresenta o erro } }else{ $_SESSION['msg'] = "<p style='color:tomato;'>Não foi possível enviar suas informações, verifique e tente novamente.</p>"; header("Location:index.php"); } Até ai tudo bem, insere corretamente os dados nas respectivas colunas da tabela ID=1, NOME= 'nome', SOBRENOME= 'sobrenome', SEXO= 'sexo'. No Banco de Dados ainda temos as colunas a serem preenchidas no mesmo ID(mesma linha) --> CIDADE= ' ', ENDEREÇO= ' ', CEP= ' ', Que referem-se à pagina2.php: <!-- PÁGINA PAGINA2.PHP --> <?php session_start(); ?> <html> <form method="POST" action="2.php"> <!-- ACTION 2.PHP RESPECTIVAMENTE --> <input type="text" name="namecidade" placeholder="Cidade"> <input type="text" name="nameendereco" placeholder="Endereço"> <input type="tex" name="namecep" placeholder="Cep"> <input type="submit" name="namebtn" value="Próximo Passo"> </form> </html> O problema, é que ao enviar o formulário com action="2.php" cujo arquivo possui o mesmo código que o "1.php" mudando somente os dados recebidos, No Banco de Dados é criado um novo ID(2) ou seja, uma nova linha, com os dados atuais nas colunas (cidade, endereço, cep) preenchidos, e as colunas anteriores (nome, sobrenome, sexo) vazias... Pessoal esta é a minha dúvida, como resolver, salvar todos os dados num mesmo id, mesma linha. O código do arquivo 2.php é o mesmo pois não faço ideia de como implementar isso, como em soluções anteriores tais dados costumava enviar com PhpMailer para e-mail então não entendo de MYSQL. Código simplificado e resumido ao máximo... Obrigado.