Ir ao conteúdo

Função select não envia dados ao banco de dados


Henrique Valença

Posts recomendados

Postado

Boa tarde,

Estou fazendo um sistema de cadastro no meu site, porém ao colocar uma função select como campo ele não cadastra no banco de dados.

já criei uma echo e exibe os dados corretamente porém não cadastra no banco de dados que fica com o campo em branco.

O código é esse:

<?php
require 'lib/core.php';

$erros = array();

if (post('submit')) {
$nome = post('nome');
$comum = post('comum');
$telefone = post('telefone');
$email = post('email');
$instrumento = post('instrumento');
$tonalidade = post('tonalidade');
$situacao = post('situacao');
$teste_data = post('teste_data');
$nascimento = post('nascimento');
$celular = post('celular');
$teste = $_POST['teste'];

if (empty($nome) || empty($comum) || empty($telefone) || empty($email) || empty($instrumento) || empty($tonalidade) || empty($situacao) || empty($teste_data) || empty($nascimento) || empty($celular) || empty($teste)) {
$erros[] = 'Você deixou algum campo em branco.';
} else {
if (!preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', $email)) {
$erros[] = 'Email inválido.';
} else {
if (db::find('count', sprintf("SELECT 0 FROM usuarios WHERE email = '%s'", $email)) != 0) {
$erros[] = 'Este email já está sendo usado.';
}
}

if (!count($erros)) {
$senha = geraSenha();

db::query(sprintf("INSERT INTO usuarios (senha, nome, comum, telefone, email, instrumento, tonalidade, situacao, teste_data, nascimento, celular, teste) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '$s')", $senha, $nome, $comum, $telefone, $email, $instrumento, $tonalidade, $situacao, $teste_data, $nascimento, $celular, $teste));
@mail($email, 'Senha de acesso Secretaria da Musica', 'Sua senha é: ' . $senha, "From: [email protected]");
$sucesso = true;
unset($senha, $nome, $comum, $telefone, $email, $instrumento, $tonalidade, $situacao, $teste_data, $nascimento, $celular, $teste);
}
}
}
?>

<DOCTYPE html>
<html>
<head>
<meta charset="utf8">
<title>CADASTRO</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><style type="text/css">
<!--
body {
background-color: #CCCCCC;
}
-->
</style>
</head>
<body>
<table width="603" border="0" align="center" cellpadding="0" cellspacing="0">
<!-- fwtable fwsrc="Layout.png" fwbase="index.jpg" fwstyle="Dreamweaver" fwdocid = "1943094403" fwnested="0" -->
<tr>
<td width="798"><img src="imagens/spacer.gif" width="553" height="1" border="0" alt=""></td>
</tr>
<tr>
<td><? if(count($erros)): ?>
<ul>
<? foreach ($erros as $erro): ?>
<li>
<?= $erro ?>
</li>
<? endforeach ?>
</ul>
<? endif ?>
<? if (isset($sucesso)): ?>
<p> </p>
<p>Registrado com sucesso! Sua senha foi enviada para seu email. Clique <a href="/usuario.php">aqui</a> para fazer login. </p>

<?php
echo $_POST['teste'];
?>
<? endif ?>

</p>
<form method="post">
<label>Nome:</label>
<input name="nome" type="text" value="<?= @$nome ?>" size="49" style="font-size:
12; font-family: Calibri; color:white; background-color:666666; border-style:solid">
<br/>
<label>Comum::</label>
<input name="comum" type="text" id="comum" value="<?= @$comum ?>" size="46"style="font-size:
12; font-family: Calibri; color:white; background-color:666666; border-style:solid">
<br/>
<label>Telefone:</label>
<input name="telefone" type="text" value="<?= @$telefone ?>" size="47"style="font-size:
12; font-family: Calibri; color:white; background-color:666666; border-style:solid">
<br/>
<label>Celular:</label>
<input name="celular" type="text" id="celular" value="<?= @$celular ?>" size="50"style="font-size:
12; font-family: Calibri; color:white; background-color:666666; border-style:solid">
<br/>
<label>Email:</label>
<input name="email" type="text" value="<?= @$email ?>" size="50"style="font-size:
12; font-family: Calibri; color:white; background-color:666666; border-style:solid">
<br/>
<label>Instrumento:</label>
<input name="instrumento" type="text" id="instrumento" value="<?= @$instrumento ?>" size="39"style="font-size:
12; font-family: Calibri; color:white; background-color:666666; border-style:solid">
<br/>
<label>Tonalidade:</label>
<input name="tonalidade" type="text" id="tonalidade" value="<?= @$tonalidade ?>" size="38"style="font-size:
12; font-family: Calibri; color:white; background-color:666666; border-style:solid">
<br/>
<label>Situação:</label>
<input name="situacao" type="text" id="situacao" value="<?= @$situacao ?>" size="40"style="font-size:
12; font-family: Calibri; color:white; background-color:666666; border-style:solid">
<br/>
<label>Ano do último teste :</label>
<input name="teste_data" type="text" id="teste_data" value="<?= @$teste_data ?>" size="52" maxlength="4"style="font-size:
12; font-family: Calibri; color:white; background-color:666666; border-style:solid">
<br/>
<label>Data de nascimento :</label>
<input name="nascimento" type="text" id="nascimento" value="<?= @$nascimento ?>" size="50"style="font-size:
12; font-family: Calibri; color:white; background-color:666666; border-style:solid">
<br/>
<label>Teste:</label>
<select name="teste" type="text" id="teste" style="font-size:
12; font-family: Calibri; color:white; background-color:666666; border-style:solid">
<option value="Dó">Dó</option>
<option value="Si">Si b</option>
<option value="Mi">Mi b</option>
<option value="Fá">Fá</option>
</select>
<br/>
<button type="submit" name="submit" value="submit">
Enviar
</button>
<button type="reset">Limpar</button>



</form></td>
</tr>
</table>

</body>
</html>

Desde já grato,

Postado

Brother,

Null, (Nulo) é uma palavra que atribui um valor nulo para um campo, célula ou código em um banco de dados ou de uma aplicação. Os atributos em tabelas de base de dados que suportam a linguagem SQL podem ser definidos como null. Isto indica que, o valor de fato da coluna é "desconhecido" ou "não aplicável", e também não é um campo vazio, ou com espaços.

Acredito, que seu form esteja enviando o conteúdo do select, porém não está sendo tratado o resultado de maneira correta, ex:

Se você quer exibir uma data que está armazenada numa variável DATE, você precisa passar ela pra String pra poder exibir...

Sugiro que veja se os tipos de variável se estão condizentes vê se ajuda em algo.

---------- Editei daqui pra baixo -----------------------------

Dei uma olhada novamente percebi que você chama os values dos inputs com php,

já nos values do select você chama sem o php

talvez você precise continuar chamando o php e passar um parâmetro pra cada um deles...

<option value="<?= @$celular=Dó ?>">Dó</option>
ou
<option value="<?= @$celular?Do ?>">Dó</option>

** da uma pesquisada nisso também direitinho como envia com parâmetros.

abraço

Postado

Olá galera.

Resolvi meu problema de outro jeito.

Fiz o formulário com RECORD SET. Parece que o problema era no código mesmo ja que quando alterei o código funcionou perfeitamente. se alguém quiser dar outrara sugestão aceito.

  • Moderador
Postado

Bem, eu recomendo dar uma boa limpada nesse código... passe toda a estilização para o css, evite de usar tabela se os dados não forem tabulados.. formulários, devem ser feitos no padrão webstandard... para poderem ser validados na w3c...

enfim..

como já resolveu vou encerrar o tópico

Postado

Olá,

eu solicitei a reabertura do tópico pois desenvolvi outra solução para o problema:

<select name="tonalidade" >
<option value="Dó" <?php if (!(strcmp("Dó", ""))) {echo "SELECTED";} ?>>Dó</option>
<option value="Si b" <?php if (!(strcmp("Si b", ""))) {echo "SELECTED";} ?>>Si b</option>
<option value="Mi b" <?php if (!(strcmp("Mi b", ""))) {echo "SELECTED";} ?>>Mi b</option>
<option value="Fá" <?php if (!(strcmp("Fá", ""))) {echo "SELECTED";} ?>>Fá</option>
</select>

  • Moderador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...