Ir para conteúdo

POWERED BY:

Arquivado

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

bcs_ptx

como atualizo minhas duas tabelas?

Recommended Posts

Gente o seguinte, eu faço meus negócios e no fim sempre me falta conhecimento para concluir, mas creio que com o tempo e ajuda de todos eu consiga cada vez aprender mais...

 

seguinte, meu sistema esta quase concluido oque falta nele é na hora que o usuario clicar em devolução, ele atualiza a tabela livros e historicos ao mesmo tempo, na data de devolução, quando eu faço a devoluçaõ ele atualiza só a tabela teste_livros, pq é só um update, então essa é a grande dúvida, oque eu faço nesse script para atualizar a outra tabela junto?

<?php

session_start();

include('conexao.php');

$id_usuario = $_POST['id_usuario'];

$data = date("Y-m-d");

$atualiza = "UPDATE teste_livros SET 
			 	status = 'disponivel',
				data_retirada = '',
				data_entrega = '',
				data_devolucao = '$data',
				id_usuario = ''
			 where id_livros = '".$_POST['id_livros']."'";

if(!mysql_query($atualiza)){
	echo 'Erro ao atualizar';
	exit();
}else{
	header('location: index.php');
}

?>

ó na tabela historico eu tenho que atualiza junto só data_devolucao = '$data',, como ligo isso? tentei com select aqui mas não deu muito certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

$atualiza = "UPDATE teste_livros SET 
status = 'disponivel',
data_retirada = '',
data_entrega = '',
data_devolucao = '$data',
id_usuario = ''
where id_livros = '".$_POST['id_livros']."'";

if(!mysql_query($atualiza)){
echo 'Erro ao atualizar';
exit();
}else{
header('location: index.php');
}

 

 

é só repetir isso mas mudar a variavel atualiza e repetir o comando com a outra tabela

no if coloca um && e a segunda condição (que verifica o segundo update).

 

Assim na verdade terá dois upgrades mas em um unico script/numa unica ação (o usuario n vai precisar preencher duas vezes ou apertar duas vezes um botão)

 

se n for isso acho q entendi errado =/

ps. Use a tag code para codigos =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara fiz assim mas não deu certo...

<?php

session_start();

include('conexao.php');

$id_usuario = $_POST['id_usuario'];

$data = date("Y-m-d");

$atualiza = "UPDATE teste_livros SET 
			 	status = 'disponivel',
				data_retirada = '',
				data_entrega = '',
				data_devolucao = '$data',
				id_usuario = ''
			 where id_livros = '".$_POST['id_livros']."'";

$atualiza2 = "UPDATE historico SET
				data_devolucao = '$data'
			 where id_historico = '".$_POST['id_historico']."'";

if(!mysql_query($atualiza) && ($atualiza2)){
	echo 'Erro ao atualizar';
	exit();
}else{
	header('location: index.php');
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

apresenta qual erro? (tira o header pra n trocar de página pra poder ver o erro)

quando você cadastrava uma só funcionava?

 

faz o teste sem a segunda condição no IF.. (atualiza2).

 

use "code" para iniciar e "/code" para finalizar os codigos entre conchetes "[]" :joia:

fica mais facil visualizar

Compartilhar este post


Link para o post
Compartilhar em outros sites

sem o header aparece esse erro

 

Notice: Undefined index: id_usuario in C:\Arquivos de programas\EasyPHP5.3.0\www\teste_livros\devolucao.php on line 7

 

Notice: Undefined index: id_historico in C:\Arquivos de programas\EasyPHP5.3.0\www\teste_livros\devolucao.php on line 21

 

e sem o if atualiza2 ele atualiza certo... o problema é na ligação das duas tabelas mesmo, vou ter que sair, se tu souber oque é posta ai amanha demanha eu entro e vejo denovo.grande ajuda abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara, ele n está recebendo o id_usuario nem o id_historico

no caso ele deveria receber aqui

$id_usuario = $_POST['id_usuario'];
$id_historico = $_POST['id_historico']; 

 

no caso esses dados vem de um form (o msm que tem o botão que abre essa janela)

nesse form deve ter os campos "input" (por exemplo) com o nome="id_usuario" e outro com nome="id_historico" (no form que tem o botão)

acho que tem q definir id tmb, é q por costume eu sempre defino. Ai fica no input id="id_usuario" e id="id_historico".

 

Caso você ja tenha feito isso verifique se está escrito do msm jeito os nomes e ids tem que bater com o $_POST['nomeDadoNoInput']

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim cara vou passar todo meu código e até do input, ele continua falhando ao atualizar a tabela historico...segue

 

<form action="devolucao.php" method="post">
                               <input type="hidden" name="id_historico" value="<?php echo $dados['id_historico'] ?>">
                               <input type="hidden" name="id_livros" value="<?php echo $dados['id_livros'] ?>">
                               <input type="submit" onclick="return devolucao()" value="" id="btn_devolucao">
                           </form>


<?php

session_start();

include('conexao.php');

$id_livros = $_POST['id_livros'];

$id_historico = $_POST['id_historico'];

$data = date("Y-m-d");

$atualiza = "UPDATE teste_livros SET 
			 	status = 'disponivel',
				data_retirada = '',
				data_entrega = '',
				data_devolucao = '$data',
				id_usuario = ''
			 where id_livros = '".$_POST['id_livros']."'";

$atualiza2 = "UPDATE historico SET
				data_devolucao = '$data'
			 where id_historico = '".$_POST['id_historico']."'";

if(!mysql_query($atualiza) && ($atualiza2)){
	echo 'Erro ao atualizar';
	exit();
}else{
	header('location: index.php');
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

já ouviu falar em trigger??

 

Trigger pode ser usada em Mysql?

 

 

 

@topico

cara coloca type="text" aonde está hidden e verifica se está aparecendo os valores.

 

se dava undefined index "variavel" "local/pagina.php" é q ele não está encontrando valor na variável.

 

Abri seu link victor xP, tem msm como fazer em mysql, eu pensei q era só em sqlserver.

 

bcs_ptx

 

Seu código funcionava com um unico Update?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim ele funciona como unico sim, ai ó agora coloquei um echo atualiza2; e olha oque mostra...

 

UPDATE historico SET data_devolucao = '2011-06-28' where id_historico = '

Notice: Undefined index: id_historico in C:\Arquivos de programas\EasyPHP5.3.0\www\teste_livros\editar_registro.php on line 185

 

 

meu código la no select é assim

 

<?php

			include('btn/niveis.php');

			$id_livros = $_GET['id_livros'];

			$editar = "SELECT * FROM teste_livros WHERE id_livros = '".$id_livros."'";

			$resultado = mysql_query($editar);

			$dados = mysql_fetch_assoc($resultado);

			$status = $dados['status'];

           ?>

depois vem isso

 

<form action="devolucao.php" method="post">
                               <input type="hidden" name="id_historico" value="<?php echo $dados['id_historico'] ?>">
                               <input type="hidden" name="id_livros" value="<?php echo $dados['id_livros'] ?>">
                               <input type="submit" onclick="return devolucao()" value="" id="btn_devolucao">
                           </form>

e depois isso

 

 

<?php

       session_start();

       include('conexao.php');

       $id_livros = $_POST['id_livros'];

       $id_historico = $_POST['id_historico'];

       $data = date("Y-m-d");

       $atualiza = "UPDATE teste_livros SET 
                                       status = 'disponivel',
                                       data_retirada = '',
                                       data_entrega = '',
                                       data_devolucao = '$data',
                                       id_usuario = ''
                                where id_livros = '".$_POST['id_livros']."'";

       $atualiza2 = "UPDATE historico SET
                                       data_devolucao = '$data'
                                where id_historico = '".$_POST['id_historico']."'";

       if(!mysql_query($atualiza) && ($atualiza2)){
               echo 'Erro ao atualizar';
               exit();
       }else{
               header('location: index.php');
       }

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

       session_start();

       include('conexao.php');

       $id_livros = $_POST['id_livros'];//-------------------aqui você adiciona o id_livros a uma variável

       $id_historico = $_POST['id_historico']; //-----------aqui você adiciona o id_historico a uma variavel

       $data = date("Y-m-d");

       $atualiza = "UPDATE teste_livros SET 
                                       status = 'disponivel',
                                       data_retirada = '',
                                       data_entrega = '',
                                       data_devolucao = '$data',
                                       id_usuario = ''
                                where id_livros = '".$_POST['id_livros']."'"; //pq aqui ao invés de usar a variável você usa $_POST[id_livros] ?

       $atualiza2 = "UPDATE historico SET
                                       data_devolucao = '$data'
                                where id_historico = '".$_POST['id_historico']."'"; //pq aqui ao invés de usar a variável você usa $_POST[id_historio] ?  

       if(!mysql_query($atualiza) && ($atualiza2)){
               echo 'Erro ao atualizar';
               exit();
       }else{
               header('location: index.php');
       }

?>

 

apenas dicas, acho q n vai resolver seu problema, mas se você jah guardou o POST em uma variável n precisa pega-lo dnv.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é incrivel tah dando erro pq n encontra o id_historico

 

   <input type="hidden" name="id_historico" value="<?php echo $dados['id_historico'] ?>">

muda essa linha para essa:

  <input type="text" name="id_historico" value="<?php echo $dados['id_historico'] ?>">

 

ali no value vai aparecer algo, ou um erro... se aparecer em branco tmb é erro...

 

E ai o q aparece?

Compartilhar este post


Link para o post
Compartilhar em outros sites

blza, aparece isso

 

<br /> <b>Notice</b>: Undefined index: id_historico in <b>C:\Arquivos de programas\EasyPHP5.3.0\www\teste_livros\editar_registro.php</b> on line <b>185</b><br />

 

o mesmo erro

 

eu acho que o erro é no select, por que eu crio a variavel e da erro tambem, pq são duas tabelas que ele tem que fazer update, e meu select só tem uma, será que pode ser isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

a questão é - De onde vem esse $dados[id_historico]. Eles esta vindo errado. Se for outra página que envia para ele através de um input verifique o nome do input e tal, se for de um select verifique o nome do campo e das variáveis e se a conexão está OK. Acho q n é um erro maior que isso.

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.