Ir para conteúdo

POWERED BY:

Arquivado

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

MiguelTb

[Resolvido] Problemas com select box

Recommended Posts

Boa tarde galera,

Então, fiz um menu select que puxa do banco de dados o nome do profissional cadastrado, mas o value="" dele não está funcionando. Na hora de gravar o value no banco ele grava "0".

 

O código do select box é o seguinte:

<select name="select"><?php 
$todos = mysql_query("SELECT * FROM hei_profissoes");
while ($contar=mysql_fetch_array($todos)) {
$total++;
}
$q=mysql_query("SELECT * FROM hei_profissoes WHERE status = 1 ORDER BY id DESC");
while($f=mysql_fetch_assoc($q)) { 
?>
         <option name="opid" id="opid" value="<?php echo $f['id']; ?>"><?php echo $f['profissional']; ?></option><?php } ?><br>
<?php echo $f['id']; ?>
       </select>

 

e o cadastrar.php

$sqlinsert = "INSERT INTO hei_profissoes (idprof, pergunta, resposta, status) 
VALUES ('$opid', '$pergunta', '$resposta', '0')"; 

 

Alguém sabe o que estou fazendo de errado? xD

abraços galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sqlinsert = "INSERT INTO hei_profissoes (idprof, pergunta, resposta, status) 
VALUES ($opid, '$pergunta', '$resposta', '0')";
echo $sqlinsert,'<br />';
var_dump( $_POST );

 

oque tem acima do $sqlinsert?

se é INT, então não deve ter aspas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, tem isso:

 

$connection = @mysql_connect($host, $user, $pass) or die("Unable to connect to database!");
//select database
@mysql_select_db($db, $connection) or die("Unable to select database!");
$sqlinsert = "INSERT INTO hei_profissoes (idprof, pergunta, resposta, status) 
VALUES ('$opid', '$pergunta', '$resposta', '0')"; 

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois então cara.. não use o register_globals.

 

espera-se que você tenha isso acima:

$opid = $_POST['opid']; //... tratando a variavel com alguma função e tal..

 

oque retornou do teste que passei ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

colocou a cima a linha que eu sugeri?

e o retorno do echo ?

 

faça tudo, depois poste o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o var_dump retornou isso:

 

INSERT INTO hei_profissoes (idprof, pergunta, resposta, status) VALUES (, 'sdfsdfs', 'fsdfsdf', '0')

array(4) { ["pergunta"]=> string(7) "sdfsdfs" ["resposta"]=> string(7) "fsdfsdf" ["idprof"]=> string(0) "" ["select"]=> string(2) "28" }

 

o que deveria estar gravando no idprof era aquele 28 =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou dessa forma:

$sqlinsert = "INSERT INTO hei_profissoes (idprof, pergunta, resposta, status) 
VALUES ('".$_POST['select']."', '$pergunta', '$resposta', '0')";

 

Algum problema? Se não tiver pode colocar como resolvido =D

 

vlw galera + uma vez!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo MiguelTb existem várias formas de se escrever a query mas já que está usando aspa dupla faça assim:

 

Exemplo A

 

$sqlinsert = "INSERT INTO hei_profissoes (idprof, pergunta, resposta, status) 
VALUES ('{$_POST['select']}', '$pergunta', '$resposta', '0')";

Ou assim:

 

Exemplo B

 

$sqlinsert = 'INSERT INTO hei_profissoes (idprof, pergunta, resposta, status) 
VALUES (\''.$_POST['select'].'\', \''.$pergunta.'\', \''.$resposta.'\', \'0\')';

Quando se coloca valores com aspas duplas o PHP interpreta oque é um texto e oque é uma variável.

 

Existem pessoas que dizem que o Exemplo A executa mais rapido, outras que o Exemplo B é mais rapido para o PHP interpretar. O Fato é que se escreve ou de uma forma ou de outra. Da forma como escreveu é com certeza a mais lenta pois além do PHP interpretar oque é texto e oque é variável você ainda concatena valores.

 

De todo modo funciona, porém é uma questão de performance e forma correta de padronização.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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