emanuel_pereira Posted November 30, 2011 Report Share Posted November 30, 2011 olá pessoal estou quebrando minha cabeça e não estou conseguindo resolver esse problema:eu tenho um while onde mostra todos os usuarios cadastrados, e ao lado de cada usuario tem um botão gravar ondequero que quando eu clique nele ele salve o id do usuario em outra tabela ex:1 joao botao_gravar2 pedro botao_gravar3 maria botao_gravaro codigo que mostra o usuario na pagina é esse:while($dadosUsu = mysql_fetch_assoc($result_dados_usu)){ $id_usu = $dadosUsu['id']; $nome_usu = $dadosUsu['nome']; echo $id_usu; echo $nome_usu;}o codigo do insert é esse:if(isset ($_POST['botaoGravar'])){ $sql = "INSERT INTO usuario2 (id) VALUES ('$id_usu') "; //acho que o erro ta aqui. $result_usu = @mysql_query($sql) or die(mysql_error()); $resultado_usuario = @mysqli_query($result_usu);}mostra essa mensagem quando clico no botao gravar:Incorrect integer value: '' for column 'id' at row 1como resolvo esse problema?Obrigado!!! Quote Link to comment Share on other sites More sharing options...
0 ESerra Posted November 30, 2011 Report Share Posted November 30, 2011 É só ler a mensagem de erro... o valor da coluna é inteiro e você está tentnado gravar um dado em branco. Quote Link to comment Share on other sites More sharing options...
0 emanuel_pereira Posted November 30, 2011 Author Report Share Posted November 30, 2011 ESerra eu não entendi muito bem, pois sou iniciante, você poderia me dar um exemplo mais claronesse meu código que passei, de como eu inserir no banco uma varivel do while, eu não estou entendendo porque que ela está em branco! Quote Link to comment Share on other sites More sharing options...
0 raphael_suporte Posted November 30, 2011 Report Share Posted November 30, 2011 na hora que você executa o "echo $id_usu;" ele exibi algum valor.após o comando preencher o comando $sql, usa o DIE e mostra o que ele realmente está montando:$sql = "INSERT INTO usuario2 (id) VALUES ('$id_usu') "; //acho que o erro ta aqui. die($sql); Quote Link to comment Share on other sites More sharing options...
0 emanuel_pereira Posted November 30, 2011 Author Report Share Posted November 30, 2011 raphael_suporte, eu verifiquei o insert como você me falou com o die($sql),e ele só ta fazendo o insert do primeiro resultado do while, qualquer botão_gravar de qualquerusuario que eu clicar ele só grava o id do 1º usuario do while que no caso é joao.e por isso da o errodizendo que esse valor já existe no banco e ta duplicado! Quote Link to comment Share on other sites More sharing options...
0 raphael_suporte Posted November 30, 2011 Report Share Posted November 30, 2011 isso, porque o insert está fora do while... Quote Link to comment Share on other sites More sharing options...
0 emanuel_pereira Posted December 2, 2011 Author Report Share Posted December 2, 2011 olá, desculpem mais é por que eu sou iniciante,eu já tentei dar o insert dentro do while mais na hora da inserção ele só ta inserindo no bancoo id do primeiro usuario do while, que no caso é o joão, mesmo eu cliando no botão gravar de qualquer usuario da lista do whileele só insere o id do primeiro, sera que tem alguém que resolva esse meu problema?while($dadosUsu = mysql_fetch_assoc($result_dados_usu)){$id_usu = $dadosUsu['id'];$nome_usu = $dadosUsu['nome'];echo $id_usu;echo $nome_usu;if(isset ($_POST['botaoGravar'])){$sql = "INSERT INTO usuario2 (id) VALUES ('$id_usu') "; $result_usu = @mysql_query($sql) or die(mysql_error());$resultado_usuario = @mysqli_query($result_usu);}grato!!! Quote Link to comment Share on other sites More sharing options...
0 kethellen Posted December 3, 2011 Report Share Posted December 3, 2011 (edited) Emanuel vou te dar uma grande ajuda, pois já precisei de ajuda e sei que você deve ta precisando muito. Mais não pode acostumar não viu rsrsrs...Fiz um passo a passo é so você mudar os campos já testei e ta funcionando direitinho ta enviando o id para outra tabela.Primeiramente crie um banco de dados chamado teste, em seguida crie as seguinte tabelas:CREATE TABLE aluno( id_aluno int not null auto_increment, nome varchar(150) not null, idade int not null, PRIMARY KEY(id_aluno));CREATE TABLE livro( id_livro int not null auto_increment, descricao varchar(255), id_aluno int not null, PRIMARY KEY(id_livro));ALTER TABLE `livro` ADD CONSTRAINT `fk_id_aluno` FOREIGN KEY ( `id_aluno` ) REFERENCES `aluno` ( `id_aluno` ) ;Segundo passo crie a conexão com banco de dados:conexao.php<?php $dbname="teste"; $usuario="root"; $password=""; $conexao = mysql_connect("localhost",$usuario,$password); $banco=mysql_select_db($dbname,$conexao);?>agora crie o arquivo emanuel.php. Observação no lugar do <botton> eu coloquei um imagem para ser o botão.<?php require_once("conexao.php"); $sql = "SELECT * FROM aluno"; $resposta = mysql_query( $sql ); while ( $linha = mysql_fetch_array( $resposta )){ if (isset($linha) AND !empty($linha)){?><div id="dados"><p><?php echo $linha['nome']; ?> <a href=envia-id.php?id_aluno=<?php echo $linha['id_aluno]; ?>"><img src="bg-botao.jpg" border="0"/></a></p></div> <?php } } mysql_free_result( $resposta );?>E logo depois crie o arquivo envia-id.php que é o arquivo que irá receber o id pelo botão onde você clicou<?php require_once("conexao.php"); $id_aluno = $_GET['id_aluno']; $sql = "INSERT INTO livro(id_livro,id_aluno) VALUES('null','$id_aluno')"; $qry = mysql_query($sql, $conexao); mysql_close($conexao); header('Location: emanuel.php');?>Prontinho funcionando belezinha. Edited December 3, 2011 by kethellen Quote Link to comment Share on other sites More sharing options...
Question
emanuel_pereira
olá pessoal estou quebrando minha cabeça e não estou conseguindo resolver esse problema:
eu tenho um while onde mostra todos os usuarios cadastrados, e ao lado de cada usuario tem um botão gravar onde
quero que quando eu clique nele ele salve o id do usuario em outra tabela ex:
1 joao botao_gravar
2 pedro botao_gravar
3 maria botao_gravar
o codigo que mostra o usuario na pagina é esse:
while($dadosUsu = mysql_fetch_assoc($result_dados_usu)){
$id_usu = $dadosUsu['id'];
$nome_usu = $dadosUsu['nome'];
echo $id_usu;
echo $nome_usu;
}
o codigo do insert é esse:
if(isset ($_POST['botaoGravar'])){
$sql = "INSERT INTO usuario2 (id) VALUES ('$id_usu') "; //acho que o erro ta aqui.
$result_usu = @mysql_query($sql) or die(mysql_error());
$resultado_usuario = @mysqli_query($result_usu);
}
mostra essa mensagem quando clico no botao gravar:
Incorrect integer value: '' for column 'id' at row 1
como resolvo esse problema?
Obrigado!!!
Link to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.