emanuel_pereira Postado Novembro 30, 2011 Denunciar Share Postado Novembro 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!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Novembro 30, 2011 Denunciar Share Postado Novembro 30, 2011 É só ler a mensagem de erro... o valor da coluna é inteiro e você está tentnado gravar um dado em branco. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 emanuel_pereira Postado Novembro 30, 2011 Autor Denunciar Share Postado Novembro 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Novembro 30, 2011 Denunciar Share Postado Novembro 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); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 emanuel_pereira Postado Novembro 30, 2011 Autor Denunciar Share Postado Novembro 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Novembro 30, 2011 Denunciar Share Postado Novembro 30, 2011 isso, porque o insert está fora do while... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 emanuel_pereira Postado Dezembro 2, 2011 Autor Denunciar Share Postado Dezembro 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!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kethellen Postado Dezembro 3, 2011 Denunciar Share Postado Dezembro 3, 2011 (editado) 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. Editado Dezembro 3, 2011 por kethellen Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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 para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.