Ir para conteúdo

POWERED BY:

Arquivado

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

MateusOFCZ

Como inserir dados em um banco de dados.

Recommended Posts

Olá, gostaria de saber como coloco essas informações (http://prntscr.com/mxgioc) em um banco de dados.

SQL do banco de dados (Estrutura: http://prntscr.com/mxgm0k):

create table themeloader (
`id` int(11) auto_increment NOT NULL primary key,
`tema` varchar(125) CHARACTER SET latin1 NOT NULL,
`opcao` enum('0', '1', '2', '3') CHARACTER SET latin1 NOT NULL DEFAULT '0'
  )

Index.html (Preview: http://prntscr.com/mxglnc):

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->

<html>
    <head>
        <title>BOT Project - Mabel</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <center><img src="img/logo.png"></center>
        <form method="POST" action="botproject.php">
            <div>
            <label>Tema:</label>
            <input type="text" name="Tema" id="tema"><br><br>
            </div>
            <div class="select">
            <select name="opcao" id="opcao" class="form-control">
                <option value="0">Selecione uma opção</option>
                <option value="1">Quem é</option>
                <option value="2">O que é</option>
                <option value="3">A história do(a)</option>
            </select>
            </div><br><br>
            <div class="button">
            <button type="submit" class="botão" name="enviar" id="enviar">Enviar</button>
            </div>
        </form>
    <center><p style="color:#FFFFFF;"><b>By: Mateus e Vinícius</b></p></center>
    </body>
</html>

(Informações BD: http://prntscr.com/mxgmr6)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você ira ter que criar a página botproject.php para receber as informações de seu post.

Nesta página terá que ter a conexão do banco de dados. Exemplo:

 

botproject.php

if(isset($_POST['Tema'] && isset($_POST['opcao']) //Verifica se existe os posts tema e opção
{
  $tema = $_POST['Tema'];
  $opcao = $_POST['opcao'];
  $insert = INSERT INTO 'themeloader' VALUES($tema,$opcao);
} 

Dai agora você tem que ver como será sua conexão, se por PDO ou Mysqli.

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, JOSELUISALD disse:

Você ira ter que criar a página botproject.php para receber as informações de seu post.

Nesta página terá que ter a conexão do banco de dados. Exemplo:

 


botproject.php

if(isset($_POST['Tema'] && isset($_POST['opcao']) //Verifica se existe os posts tema e opção
{
  $tema = $_POST['Tema'];
  $opcao = $_POST['opcao'];
  $insert = INSERT INTO 'themeloader' VALUES($tema,$opcao);
} 

Dai agora você tem que ver como será sua conexão, se por PDO ou Mysqli.

Seria Mysqli...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz o botproject.php assim:
 

<?php 

$servername = "127.0.0.1";
$database = "botproject";
$username = "root";
$password = "";

$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if (!$conn) {
      die("Connection failed: " . mysqli_connect_error());
}

$tema = $_POST['tema'];
$opcao = $_POST['opcao'];

echo "Connected successfully";
$sql = "INSERT INTO `themeloader`(`tema`, `opcao`) VALUES ('$tema', '$opcao')";
if (mysqli_query($conn, $sql)) {
      echo "New record created successfully";
} else {
      echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>


Porém deu esse erro:
 

Citar


Notice: Undefined index: opcao in C:\xampp\htdocs\botproject.php on line 15
Connected successfullyNew record created successfully


Index.html:
 

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->

<html>
    <head>
        <title>BOT Project - Mabel</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <center><img src="img/logo.png"></center>
        <form method="POST" action="botproject.php">
            <div>
            <label>Tema:</label>
            <input type="text" id="tema" name="tema"><br><br>
            </div>
            <div class="select">
            <select class="form-control">
                <option id="opcao" name ="opcao" value="0">Selecione uma opção</option>
                <option id="opcao" name ="opcao" value="1">Quem é</option>
                <option id="opcao" name ="opcao" value="2">O que é</option>
                <option id="opcao" name ="opcao" value="3">A história do(a)</option>
            </select>
            </div><br><br>
            <div class="button">
			<button type="submit" class="botão" name="enviar" id="enviar" onclick="Enviar();" value="Enviar"/>Enviar</button>
            </div>
        </form>
    <center><p style="color:#FFFFFF;"><b>By: Mateus e Vinícius</b></p></center>
    </body>
</html>

Consegui inserir o "Tema" porém a "Opção" ainda não deu, acho que isso por causa que a tabela "opcao" no BD é enum, tem como eu fazer que quando seleciona a opção "Quem é" ele muda o valor para "1"?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu erro, notice é um aviso que algo pode estar incorreto, mas a execução continua mesmo assim.

 

O notice está avisando que as variáveis não existem antes de você inserir, ou seja, você está inserindo algo vazio no banco.

 

Antes de rodar seu INSERT, precisa receber os dados que está enviando por POST através do formulário, ex:

$tema = $_POST['Tema']; // tem que ser o mesmo 'name' que está no seu formulário
$opcao = $_POST['opcao'];
// INSERT aqui

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 minutos atrás, marcosmarcolin disse:

Não deu erro, notice é um aviso que algo pode estar incorreto, mas a execução continua mesmo assim.

 

O notice está avisando que as variáveis não existem antes de você inserir, ou seja, você está inserindo algo vazio no banco.

 

Antes de rodar seu INSERT, precisa receber os dados que está enviando por POST através do formulário, ex:


$tema = $_POST['Tema']; // tem que ser o mesmo 'name' que está no seu formulário
$opcao = $_POST['opcao'];
// INSERT aqui

 

Eu preenchi o formulário: http://prntscr.com/mxjn83

Deu isso:
 

Citar


Notice: Undefined index: opcao in C:\xampp\htdocs\botproject.php on line 15
Connected successfullyNew record created successfully


No banco de dados ficou assim: http://prntscr.com/mxjnk3

CÓDIGO:

botproject.php
 

<?php 

$servername = "127.0.0.1";
$database = "botproject";
$username = "root";
$password = "";

$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if (!$conn) {
      die("Connection failed: " . mysqli_connect_error());
}

$tema = $_POST['tema'];
$opcao = $_POST['opcao'];

echo "Connected successfully";
$sql = "INSERT INTO `themeloader`(`tema`, `opcao`) VALUES ('$tema', '$opcao')";
if (mysqli_query($conn, $sql)) {
      echo "New record created successfully";
} else {
      echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>


Index.html
 

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->

<html>
    <head>
        <title>BOT Project - Mabel</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <center><img src="img/logo.png"></center>
        <form method="POST" action="botproject.php">
            <div>
            <label>Tema:</label>
            <input type="text" id="tema" name="tema"><br><br>
            </div>
            <div class="select">
            <select class="form-control">
                <option id="opcao" name ="opcao" value="0">Selecione uma opção</option>
                <option id="opcao" name ="opcao" value="1">Quem é</option>
                <option id="opcao" name ="opcao" value="2">O que é</option>
                <option id="opcao" name ="opcao" value="3">A história do(a)</option>
            </select>
            </div><br><br>
            <div class="button">
			<button type="submit" class="botão" name="enviar" id="enviar" onclick="Enviar();" value="Enviar"/>Enviar</button>
            </div>
        </form>
    <center><p style="color:#FFFFFF;"><b>By: Mateus e Vinícius</b></p></center>
    </body>
</html>


Estrutura do BD http://prntscr.com/mxjo22
Opções http://prntscr.com/mxjo8e

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altere seu <select>, o name vai apenas no cabeçalho:

<select name="opcao" class="form-control">
                <option id="opcao" value="0">Selecione uma opção</option>
                <option id="opcao" value="1">Quem é</option>
                <option id="opcao" value="2">O que é</option>
                <option id="opcao" value="3">A história do(a)</option>
</select>

Caso não for, retire as aspas do value.

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 minutos atrás, marcosmarcolin disse:

Altere seu <select>, o name vai apenas no cabeçalho:


<select name="opcao" class="form-control">
                <option id="opcao" value="0">Selecione uma opção</option>
                <option id="opcao" value="1">Quem é</option>
                <option id="opcao" value="2">O que é</option>
                <option id="opcao" value="3">A história do(a)</option>
</select>

Caso não for, retire as aspas do value.

Deu certo, obrigado.
Aproveitando o momento... Sabe me dizer o que tenho que fazer para que os acentos funcione no BD? http://prntscr.com/mxjsl4
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

É questão de Charset, depende do collation do seu banco de dados.

 

Adicione no HTML entre a tag <head></head>

<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />

Adicione no arquivo PHP abaixo da tag <?php

header("Content-Type: text/html; charset=ISO-8859-1", true);

Cada caso é um caso, pode ser que não resolva desta forma.

Compartilhar este post


Link para o post
Compartilhar em outros sites
11 horas atrás, marcosmarcolin disse:

É questão de Charset, depende do collation do seu banco de dados.

 

Adicione no HTML entre a tag <head></head>


<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />

Adicione no arquivo PHP abaixo da tag <?php


header("Content-Type: text/html; charset=ISO-8859-1", true);

Cada caso é um caso, pode ser que não resolva desta forma.


Infelizmente não funcionou :\

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá.
      Estou atualizando meu conhecimento com Front-End e me deparei com o seguinte problema.
      Criei um sistema para fazer o upload de imagens e alguns campos text.
      Algo bem simples para depois começar a estudar javascript para mostrar a miniatura....
      Mas quando saio do navegador Chrome ou da aba por mais de 3 minutos, ao retornar o navegador as vezes atualiza ou nem chega atualizar mas limpa os campos.
      Estou usando um Smart Motorola com Android, mas um amigo testou no iPhone e acontece a mesma coisa.
      Gostaria de saber se há como usar javascript para evitar isso?
      Agradeço desde já.

      <!DOCTYPE html>
      <html>
      <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <title>Uploader</title>
      </head>
      <body>
          <form action="?" method="post" enctype="multipart/form-data">
              <br><br>
              <div>selecione a imagem 1</div>
              <input type="file" name="foto1" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem1">
              
              <br><br>
              <input type="file" name="foto2" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem2">
              
              <br><br>

              <input type="file" name="foto3" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem3">
              
              <br><br>
              <input type="submit" value="Enviar">
              <br><br>
          </form>
      <?php
      if ($_SERVER['REQUEST_METHOD'] == 'POST')
      {
          vardump ($_FILES);
      }
      ?>
      </body>
      </html>
       
       
       
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
×

Informação importante

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