Ir para conteúdo

Arquivado

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

Rafael Ferreira_163968

Insert Into duas tabelas

Recommended Posts

Bom dia pessoas, me ajudem por favor

 

tenho duas tabelas identicas, posts e vendas

 

preciso fazer um insert nas duas ao mesmo tempo, tipo, enviou o form faz o insert nas duas, tenho tentado das seguinte forma:

$cadastra = mysql_query("INSERT INTO posts(post_id, id_pai, img_nome, img, data) VALUES('$postId', '$idPai', '$img_nome', '$imgCad', '$timestamp')");

$cadastra = mysql_query("INSERT INTO vendas(post_id, id_pai, img_nome, img, data) VALUES('$postId', '$idPai', '$img_nome', '$imgCad', '$timestamp')");

ja tentei assim tambem:

$cadastra = mysql_query("INSERT INTO posts(post_id, id_pai, img_nome, img, data) VALUES('$postId', '$idPai', '$img_nome', '$imgCad', '$timestamp')");

$cadastra1 = mysql_query("INSERT INTO vendas(post_id, id_pai, img_nome, img, data) VALUES('$postId', '$idPai', '$img_nome', '$imgCad', '$timestamp')");

e de um monte de jeito, mas nao insere nas duas tabelas ao mesmo tempo, quando muito insere so na posts. como proceder?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo cadastrando apenas uma continua dando erro, correto? A variável $imgCard é uma imagem ou o caminho da imagem? Coloque um código mais completo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mas estranho e ter duas tabelas iguais onde muda é só o nome da mesma :upset: , para isso que existe campos que podemos setar o tipo enum.

 

('posts', 'vendas')

 

 

Estudar os SGDBs faz bem :assobiando:

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mas estranho e ter duas tabelas iguais onde muda é só o nome da mesma :upset: , para isso que existe campos que podemos setar o tipo enum.

 

('posts', 'vendas')

 

 

Estudar os SGDBs faz bem :assobiando:

 

Já que você tocou no assunto. Será que é uma boa sempre usar o SET por padrão ao invés de ENUM? Ou depende muito da situação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mas estranho e ter duas tabelas iguais onde muda é só o nome da mesma :upset: , para isso que existe campos que podemos setar o tipo enum.

 

('posts', 'vendas')

 

 

Estudar os SGDBs faz bem :assobiando:

 

o intuito de duas tabelas exatamentes iguais é pq em uma tabela, o cliente postas imagens e pode excluir, entao remove a entrada, na outra tabela eu faço a contagem de quantas imagens ele fez o upload no mes, mesmo se ele excluiu, todo dia 01 de cada mes, essa tabela fixa é limpada para começar a contar novamente, mas obrigado de toda forma.

Mesmo cadastrando apenas uma continua dando erro, correto? A variável $imgCard é uma imagem ou o caminho da imagem? Coloque um código mais completo...

 

segue o codigo

if (!empty($_FILES)) {
	$idPai = $_POST['Session'];
	$postId		= $_POST['postId'];
    $img        = $_FILES['Filedata']['name'];
	$img_nome 	= $_FILES['Filedata']['name'];
	$ext        = substr($img, -4);
	$img        = $postId.'-'.md5(uniqid(time())).$ext;
	$targetPath = $_SERVER['DOCUMENT_ROOT'].$_REQUEST['folder'].'/';
	$m = date('m');
	$y = date('Y');
	if(!file_exists($targetPath.$y)){ mkdir($targetPath.$y,0755);}
	if(!file_exists($targetPath.$y.'/'.$m)){ mkdir($targetPath.$y.'/'.$m,0755);}
	$targetPath = $_SERVER['DOCUMENT_ROOT'].$_REQUEST['folder'].'/'.$y.'/'.$m.'/';
	$tempFile = $_FILES['Filedata']['tmp_name'];
	$targetFile =  str_replace('//','/',$targetPath).$img;
	
		$imgCad = $y.'/'.$m.'/'.$img;
		$timestamp = date('Y-m-d H:i:s');
		$cadastra = mysql_query("INSERT INTO posts(post_id, id_pai, img_nome, img, data) VALUES('$postId', '$idPai', '$img_nome', '$imgCad', '$timestamp')");
		
		
		
}

no qual eu preciso inserir mais um insert into identico na tabela vendas, da forma que está ai acima, esta funcionando ok, insere na tabela posts tranquilao.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Já que você tocou no assunto. Será que é uma boa sempre usar o SET por padrão ao invés de ENUM? Ou depende muito da situação?

http://lists.mysql.com/mysql/60184

 

 

 

 

o intuito de duas tabelas exatamentes iguais é pq em uma tabela, o cliente postas imagens e pode excluir, entao remove a entrada, na outra tabela eu faço a contagem de quantas imagens ele fez o upload no mes, mesmo se ele excluiu, todo dia 01 de cada mes, essa tabela fixa é limpada para começar a contar novamente, mas obrigado de toda forma.

 

É estranho ver isso desta forma e utilizando php, geralmente usa-se triggers, mas beleza! :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que você tem 2 chaves primarias com o mesmo nome?

 

Tabela vendas terá de ter seu próprio ID, se quer relacionar o ID de posts em vendas coloca uma chave estrangeira em vendas que aponte para o id de posts.

 

vendas e post sao duas tabelas diferentes, use nomes diferentes para os atributos mesmo que ambas as tabelas façam coisas iguais.

 

 

Nesse caso, particularmente acho que você pode criar uma tabela apenas e criar uma funcao nos campos que deseja contar o histórico das atividades do usuário.

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.