Ir para conteúdo

POWERED BY:

Arquivado

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

will_pHp

[Resolvido] gravar dados em tabelas diferentes

Recommended Posts

eai galera, é o seguinte, estou com uma dúvida de como gravar dados em tabelas diferentes, tenho um formulário de cadastro e quero q seja inseridos os dados assim:

 

data

texto

evento

local

 

na tabela agenda e na mesma página desse formulário vai um campo de upload q é multiplo q os dados serão os seguintes:

 

descrição

imagem (onde será a imagem)

 

p/ ser gravada na tabela imagem, e na hora de exibir estes dados puxe tudo certo do banco de dados, ñ sei se fui muito claro ai, se vcs puderem me ajudar nisso fico grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta você fazer dois INSERT...

INSERT 1
IDAGENDA // ou outro nome da ID com chave primaria e auto_increment
data
texto
evento
local
no final do INSERT você pega a ID que foi gerada com mysql_insert_id

$idGerada = mysql_insert_id();

E no INSERT 2

IDIMAGEM
IDAGENDA = $idGerada
descrição
imagem

é isso ai.. caso naõ entendeu.. comece a montar os INSERT que a galera ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

A tabela é a mesma ? se for duas mesmo a opção de 2 inserts é ideal, mais se for na mesma tabela, podes fazer um insert e um update no campo desejado de acordo ao ID da inserção anterior.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eai Leandro obrigado cara, é o seguinte eu monte os inserts desse jeito, se vcs puderem me ajudar lembro q eu fiz o upload desse jeito pq ele é multiplo e ainda naum me veio nada na cabeça p/ melhorá-lo:

 

<?php
include('conn.php');

if(isset($_POST['done'])){

$data	= $_POST['data'];
$texto	= $_POST['texto'];
$evento	= $_POST['evento'];
$local	= $_POST['local'];

//faço uma busca no banco a procura de um valor igual
if(empty($texto)){
	$alerta = "<div id=\"alert\">Você deve preencher o campo!</div>";
	}else{
	$busca = "SELECT * FROM agenda WHERE data='$data', texto='$texto', evento='$evento', local='$local'";
	$query = mysql_query($busca);
	
	$total = mysql_num_rows($query);
	
	if ($total==0){
		$query = "INSERT INTO agenda (data,texto,evento,local) VALUES ('$data','$texto','$evento','$local')";
		mysql_query($query);
		
		$alerta = "<div id=\"alert2\">Cadastrado com sucesso!</div>";
		//aqui q eu gero o id?
		if(!$query){
			$alerta = "<div id=\"alert\">Houve um erro ao fazer o cadastrado!</div>";
			}
		$idGerada = mysql_insert_id();
		
$campos = $_POST['campos'];

$dir = "downloads/$idGerada";
//tamanhos para criar as thumbs
$largura_final = 160;
$altura_final  = 110;

@mkdir($dir);

if ($handle = @opendir($dir)) {

while (false !== ($filez = readdir($handle))){

if ($filez != "." && $filez != ".."){

$filez  = substr($filez,0,-4);
$filez2.="$filez-*-";}}
$filez2 = substr($filez2, 0, -3);
$filez3 = explode("-*-", $filez2);

natsort ($filez3);

$quanti = count($filez3);

$quanti--;

$y = $filez3[$quanti];
$y = substr($y, -2);

closedir($handle);}

$f_name = $_FILES['file']['name'];
$f_tmp  = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];

$cont=0;

$p = $y;

$desc = $_POST['desc'];

for($i=0;$i<$campos;$i++){

$name  = $f_name[$i];
$file  = explode(".",$name);
$filec = count($file);
$filec = $filec-1;
$file  = $file[$filec];
$descr = $desc[$i];
$patha = $dir."$idGerada"."$name";
$nome  = "$idGerada"."$name";

if ( ($name!="") and (is_file($f_tmp[$i]))){
	if ($cont==0){
	  echo "<b>Arquivo(s) enviados:<br /></b>";
	}

	  echo $patha." - ";

	  $up = move_uploaded_file($f_tmp[$i], $patha);
	  
	  //criar thumb
	  if(preg_match("/.jpg/i", "$nome")){
	  $format = 'image/jpeg';
		}
		if (preg_match("/.gif/i", "$nome")){
	  $format = 'image/gif';
		}
		if(preg_match("/.png/i", "$nome")){
	  $format = 'image/png';
		}
		if($format!=''){
	  $tamanho = getimagesize($dir.$nome);
	  $largura_fonte  = $tamanho[0];
	  $altura_fonte   = $tamanho[1];

	  switch($format){
	  case 'image/jpeg':
		  $source = imagecreatefromjpeg($dir.$nome);
		  break;
		  case 'image/gif';
		  $source = imagecreatefromgif($dir.$nome);
		  break;
		  case 'image/png':
		  $source = imagecreatefrompng($dir.$nome);
		  break;
	  }
	  $nome_thumb	 = substr($nome,0,strpos($nome,"."))."_thumb".substr($nome,strpos($nome,"."));
	  
	  $imagem_destino = imagecreatetruecolor($largura_final,$altura_final);
	  imagealphablending($imagem_destino, false);
	  imagecopyresized($imagem_destino, $source, 0, 0, 0, 0, $largura_final, $altura_final, $largura_fonte, $altura_fonte);
	  @imagejpeg($imagem_destino, $dir.$nome_thumb, 70);
	  imagedestroy($source);
	  imagedestroy($imagem_destino);
	  }
	  //fim do thumb

		if ($up==true):
			echo  "<i>Enviado!</i>";
			  $cont++;
				$qry = mysql_query("INSERT INTO imagens (idGerada,nome,foto,thumb) VALUES ('$idGerada','$descr','$nome','$nome_thumb')");

		else:
			echo "<i>Falhou!</i>";
		endif;

	  echo "<br />";
  }
}

echo ($cont!=0) ? "<script>alert(\"Total de arquivos enviados: $cont\");
	   location.href=\"index.php\"</script>": "<script>alert(\"Nenhum arquivo foi enviado!\");
	   location.href=\"index.php\"</script>";
}
		
		}
	}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

will_pHp

não pude vizualizar todo seu codigo , meio apurado aki mas olha só...

quando disseram para você pegar o id com o mysql_insert_id(); você jogo ele na variavel $idGerada certo ?

mas logo depois você feiz o seguinte $num = $_POST['idGerada'];

esse $_POST[idGerada]; na verdade n existe, pois o idGerada n ta vindo por POST o mysql_insert_id(); ta pegando o ultimo id q você cadastro digamos que

o id é 4 a variavel $idGerada que recebe mysql_insert_id ja é 4 pois foi o registro mais recente q você cadastro..

n vi tudo o script mas essa variavel teria tambem ter q ser inserida aki

$qry = mysql_query("INSERT INTO imagens (nome,foto,thumb) VALUES ('$descr','$nome','$nome_thumb')");

você poderia colocar um campo antes do nome como id_agenda algo assim , e esse id seria o $idGerada..

é issu ai , pelomenos eu axo q nao falei mer..... =D abrcss flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza cara, agora eu mudei la pra $num = $_GET['idGerada']; pelo oq eu entendi eu tenho q pegar a variável e colocar ela em outra, até ai beleza, so q ou terei q criar na tabela "imagens" mais um campo? ficando assim:

 

id

idGerada

nome

foto

thumb

 

o primeiro id é autoincrement

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza cara, agora eu mudei la pra $num = $_GET['idGerada']; pelo oq eu entendi eu tenho q pegar a variável e colocar ela em outra, até ai beleza, so q ou terei q criar na tabela "imagens" mais um campo? ficando assim:

 

id

idGerada

nome

foto

thumb

 

o primeiro id é autoincrement

veja bem , a parte dos campos do mysql seria dessa forma mesmo , so axo q pra se identifica melhor seria bom você coloca id_agenda invez de idGerada , porem a primera parte talvez n explikei muito bem , $_GET seria para você pega algo q esta na url , intao ainda n ta certo...

O $idGerada = mysql_insert_id(); n precisa mais ser mudada ou jogada em otra var

vi aqui tambem que o caminho da imagem é o seguinte

 

$dir = "downloads/$num";

porem a var $num seria a var $idGerada oq n faz muito sentido pois a var $idGerada seria apenas o id q você acabo de cadastra, da uma olhada nessa parte tbm q pelo q parece n ta muito certo, mas lembre q a var $idGerada n necessita ser mudada pois a unica funçao dela e ser inserida no campo id_agenda na tabela das imagens identificando qual imagem e de qual evento http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai cara eu mudei as paradas q você me falou v ai como estão fazendo um favor

você testo ? :mellow:

cara viu se ninguem pude te ajuda eu te ajudo mais tarde agora n vai da mesmo

 

so uma dica

 

@mkdir($dir); cria uma pasta certo ?

 

a var $dir = "downloads/$idGerada";

 

pelo q da pra intende ele vai cria uma pasta pra cada imagem , imagina se você fize upload de 40 imgs vai lota de pastas =D

se ninguem te ajuda ate meio dia eu tento te da uma ajuda

flw , foi mal ae to levando esporro aki ja xD

ate

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai cezaarr eu consegui fazer a inclusão aqui, tanto na tabela de imagens como na agenda com tudo certo, a unica coisa q esta pegando agora é q quando grava na tabela imagens renomeia o arquivo com o id da tabela agenda, tipo se eu tenho uma imagem com o nome teste.jpg fica 1teste.jpg e 1teste_thumb.jpg no banco axu q isso naum é problema mais se você puder me da um tok pra consertar isso fico grato. o código completo ficou assim:

 

<?php
include('config.php');

$ox  = " hidden";
$box = " #EEEEEE solid 1px";

if(isset($_POST['done'])){

$opcao	= $_POST['opcao'];
$teste	= $_POST['teste'];

if(empty($opcao) || empty($teste)){
	$alerta = "<div id=\"alert\">Os campos em vermelho devem ser preenchidos!</div>";
	$ox  = " visible";
	$box = " #FF0000 solid 1px";
	}else{
	$ox  = " visible";
	$box = " #EEEEEE solid 1px";
	
	$busca = "SELECT * FROM agenda WHERE opcao='$opcao', teste='$teste'";
	$query = mysql_query($busca);
	
	$total = mysql_num_rows($query);
	
	if ($total==0){
		$query = "INSERT INTO agenda (apcao,teste) VALUES ('$opcao','$teste)";
		mysql_query($query);
		
		//aqui começa o upload
		$idGerada = mysql_insert_id();
		$campos   = $_POST['campos'];
		$num	  = $_POST['id'];
		$dir 	  = "downloads/$num";
		//tamanhos para criar as thumbs
		$largura_final = 160;
		$altura_final  = 110;

		@mkdir($dir);
		if ($handle = @opendir($dir)){
		while (false !== ($filez = readdir($handle))){
		if ($filez != "." && $filez != ".."){
		$filez  = substr($filez,0,-4);
		$filez2.="$filez-*-";
		}
		}
		$filez2 = substr($filez2, 0, -3);
		$filez3 = explode("-*-", $filez2);

		natsort ($filez3);

		$quanti = count($filez3);

		$quanti--;

		$y = $filez3[$quanti];
		$y = substr($y, -2);

		closedir($handle);
		}
		$f_name = $_FILES['file']['name'];
		$f_tmp  = $_FILES['file']['tmp_name'];
		$f_type = $_FILES['file']['type'];

		$cont=0;

		$p = $y;

		$desc = $_POST['desc'];

		for($i=0;$i<$campos;$i++){
		$name  = $f_name[$i];
		$file  = explode(".",$name);
		$filec = count($file);
		$filec = $filec-1;
		$file  = $file[$filec];
		$descr = $desc[$i];
		$patha = $dir."$num"."$name";
		$nome  = "$num"."$name";
		
		if ( ($name!="") and (is_file($f_tmp[$i]))){
			if ($cont==0){
			  echo "<b>Arquivo(s) enviados:<br /></b>";
			}
			
			echo $patha." - ";

			  $up = move_uploaded_file($f_tmp[$i], $patha);
	  
			  //criar thumb
			  if(preg_match("/.jpg/i", "$nome")){
			  $format = 'image/jpeg';
	   		}
			if (preg_match("/.gif/i", "$nome")){
			  $format = 'image/gif';
			}
			if(preg_match("/.png/i", "$nome")){
			  $format = 'image/png';
			}
			if($format!=''){
			  $tamanho = getimagesize($dir.$nome);
			  $largura_fonte  = $tamanho[0];
			  $altura_fonte   = $tamanho[1];

			  switch($format){
			  case 'image/jpeg':
			  $source = imagecreatefromjpeg($dir.$nome);
		 	break;
			  case 'image/gif';
			  $source = imagecreatefromgif($dir.$nome);
			  break;
			  case 'image/png':
			  $source = imagecreatefrompng($dir.$nome);
			  break;
	  }
	  $nome_thumb	 = substr($nome,0,strpos($nome,"."))."_thumb".substr($nome,strpos($nome,"."));
	  
	  $imagem_destino = imagecreatetruecolor($largura_final,$altura_final);
	  imagealphablending($imagem_destino, false);
	  imagecopyresized($imagem_destino, $source, 0, 0, 0, 0, $largura_final, $altura_final, $largura_fonte, $altura_fonte);
	  @imagejpeg($imagem_destino, $dir.$nome_thumb, 70);
	  imagedestroy($source);
	  imagedestroy($imagem_destino);
	  }
	  //fim do thumb
			
			if ($up==true):
			echo  "<i>Enviado!</i>";
			$cont++;
			$qry = mysql_query("INSERT INTO imagens (idGerada,foto,thumb) VALUES ('$idGerada','$nome','$nome_thumb')");

			else:
			echo "<i>Falhou!</i>";
			endif;

			  echo "<br />";
		}
		}
		
		$alerta = "<div id=\"alert2\">Opção cadastrada com sucesso!</div>";
		$ox  = " hidden;";
		$box = " #000000 solid 1px;";
		}else{
		$alerta = "<div id=\"alert\">Esta opção ja se encontra cadastrada!</div>";
		}
	}
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>:: Página de teste ::</title>
<style>
.erro{
	font-family: Arial, Helvetica, sans-serif;
	color: #FF0000;
	font-size: 10px;
	visibility:<?=$ox;?>;
	margin-top: -10px;
	margin-bottom: -10px;
}
#erro {
	border: <?=$box;?>;
}
</style>
<script type="text/javascript">
var mainDivName = 'eventDates';

function addEvent(){
var ni = document.getElementById(mainDivName);

var numi = document.getElementById('campos');
var num = (document.getElementById("campos").value -1)+ 2;
numi.value = num;

var divIdName = "eventDate"+num+"Div";
var newdiv = document.createElement('div');
newdiv.setAttribute("id",divIdName);
newdiv.innerHTML = "<label>Descrição <i><font color='#CC0000'>"+num+"</font></i>:</label><input type=\"text\" name=\"desc[]\" size=\"38\"><label>Imagem:</label><input type=\"file\" name=\"file[]\" size=\"44\"> <a href=\"#ft\" onclick=\"removeEvent(\'"+divIdName+"\')\"> [e<font color='#CC0000'>x</font>cluir]</a><hr>";


ni.appendChild(newdiv);
}

function removeEvent(divNum){
var d = document.getElementById(mainDivName);
var olddiv = document.getElementById(divNum);
d.removeChild(olddiv);
}
</script>

</head>

<body>
<div id="wrap">
<div id="content">
	<div id="main">
	<!-- começo do conteúdo -->
		
	<div class="post">
	<h1>Adicionar nova opção</h1>
	<p>Aqui você poderá adicionar novas opções ao imóvel, <i>ex.(Piscina, TV a cabo, etc.)</i></p>
	<?=$alerta;?>
	<form method="post" action="" enctype="multipart/form-data">
	<p>
	<h2 class="add">opcao</h2>
	<label>opcao:</label>
	<input type='text' name='opcao' value='<? echo $_POST['opcao'];?>' id='erro' size="38">
	<label>Teste:</label>
	<input type='text' name='teste' value='<? echo $_POST['teste'];?>' id='erro' size="38">
	
	<a name="ft"></a><h2 class="add">Imagens do imóvel</h2>
	<input type="hidden" name="campos" value="0" id="campos" />
	<div id="eventDates"></div>
	<center>[ <a href="#ft" onClick="addEvent();">Adicionar campos</a> ]</center>
	<input type='submit' class="button" name='formulario' value='Cadastrar'><input type="hidden" name="done" value="" />
	</p>
  </form>
	</div>
	
	<!-- fim do conteúdo -->
	</div>
</div>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

e ai cara conseguiu resolve o script ai ? ^_^

consegui cara, deu um #@?$%~ trabalho so tem umas coisas pra resolver ainda q naum esta me agradando muito

Compartilhar este post


Link para o post
Compartilhar em outros sites

e ai cara conseguiu resolve o script ai ? ^_^

consegui cara, deu um #@?$%~ trabalho so tem umas coisas pra resolver ainda q naum esta me agradando muito

 

beleza :P

se tive ao meu alcance fala ai q agente tenta ajuda http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

 

ai cara muito obrigado pela luz, consegui resolver tudo agora, so vou colocar umas frilulas no script agora q esta tudo pronto tbm ja editei o código, se você quiser utilizar fique a vontade.

 

 

moderador pode colocar o tópico como resolvido por favor q eu naum sei onde coloca

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.