Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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](http://prntscr.com/mxgmr6))>
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...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 15Connected 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"?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>
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 15Connected 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](http://prntscr.com/mxjo22)
Opções [http://prntscr.com/mxjo8e](http://prntscr.com/mxjo8e)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.>
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](http://prntscr.com/mxjsl4)É 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.>
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 :\
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
{