MiguelTb 2 Denunciar post Postado Fevereiro 22, 2011 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
gremio10 14 Denunciar post Postado Fevereiro 22, 2011 O teu campo aonde voce grava o seu select, é NOT NULL ? Compartilhar este post Link para o post Compartilhar em outros sites
MiguelTb 2 Denunciar post Postado Fevereiro 22, 2011 Sim. Devo deixar null? Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Fevereiro 22, 2011 Yeap Compartilhar este post Link para o post Compartilhar em outros sites
MiguelTb 2 Denunciar post Postado Fevereiro 22, 2011 Mesmo sendo Null, ele continua gravando 0 Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Fevereiro 22, 2011 Ele irá gravar apenas numeros ou textos tbm ? Compartilhar este post Link para o post Compartilhar em outros sites
MiguelTb 2 Denunciar post Postado Fevereiro 22, 2011 Apenas números! Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Fevereiro 22, 2011 mas enão como tu quer dar valor vazio para um campo inteiro ? Compartilhar este post Link para o post Compartilhar em outros sites
MiguelTb 2 Denunciar post Postado Fevereiro 22, 2011 Como assim?! Não posso no valor do option definir um número? Tem que ser texto? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 22, 2011 $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
MiguelTb 2 Denunciar post Postado Fevereiro 22, 2011 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
William Bruno 1501 Denunciar post Postado Fevereiro 22, 2011 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
MiguelTb 2 Denunciar post Postado Fevereiro 22, 2011 Nada =/. Dei um var_dump($opid); e retornou isso: NULL NULL Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 22, 2011 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
MiguelTb 2 Denunciar post Postado Fevereiro 22, 2011 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
MiguelTb 2 Denunciar post Postado Fevereiro 22, 2011 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
Periscuelo 20 Denunciar post Postado Fevereiro 22, 2011 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
MiguelTb 2 Denunciar post Postado Fevereiro 22, 2011 Opa, valeu Periscuelo, não sabia disto, começarei a usar desta forma. Obrigadão. Compartilhar este post Link para o post Compartilhar em outros sites