Jump to content
Fórum Script Brasil
  • 0

pegar variavel do while e inserir no banco


emanuel_pereira
 Share

Question

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

  • 0

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 qualquer

usuario que eu clicar ele só grava o id do 1º usuario do while que no caso é joao.

e por isso da o erro

dizendo que esse valor já existe no banco e ta duplicado!

Link to comment
Share on other sites

  • 0

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 banco

o 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 while

ele 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!!!

Link to comment
Share on other sites

  • 0

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 by kethellen
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...