helkton 0 Denunciar post Postado Agosto 1, 2014 Olá pessoal seguinte... Tenho um pequeno script php que é para cadastro de imagens em uma TABELA para uma galeria de FOTOS DE IMÓVEIS e ao mesmo tempo pegar os dados do imóvel e cadastrar EM OUTRA TABELA. Bom a principio ela esta funcionando pois o script pega todas as fotos que irão ser upadas manda elas para uma pasta, cadastra o nome delas no banco de dados em uma tabela GALERIA e também pega os dados do imóvel e cadastra estes dados em TABELA chamada IMOVEIS. Porém agora é que vem o meu problema digamos que eu selecione 5 fotos de imóveis certo para cada foto que for cadastrada ele irá fazer o cadastro para imóveis, ou seja, terá 5 cadastros de imóveis repetidos sendo que o que eu quero é apenas um cadastro de imóvel com as 5 fotos deste respectivo imóvel. Segue o script... <?php if(isset($_POST['upload'])){ $IdImovel = $_POST['IdImovel']; $Categoria = $_POST['Categoria']; $Titulo = $_POST['Titulo']; $Valor = $_POST['Valor']; $Cidade = $_POST['Cidade']; $Estado = $_POST['Estado']; //INFO IMAGEM $file = $_FILES['img']; $numFile = count(array_filter($file['name'])); //PASTA PARA UPLOAD $folder = '../uploads'; //REQUISITOS $permite = array('image/jpeg', 'image/png'); $maxSize = 1024 * 1024 * 5; //MENSAGENS $msg = array(); $errorMsg = array( 1 => 'Imagem maior que o limite', 2 => 'o arquivo ultrapassa o limite', 3 => 'upload feito parcialmente', 4 =>'Não foi feito' ); if($numFile <= 0) echo'Selecione uma imagem'; else{ for($i = 0; $i < $numFile; $i++){ $name = $file['name'][$i]; $type = $file['type'][$i]; $size = $file['size'][$i]; $error = $file['error'][$i]; $tmp = $file['tmp_name'][$i]; $extensao = end(explode('.', $name)); $novoNome = 'nome' .rand().".$extensao"; if($error != 0) $msg[''] = "<b> $name:</b>".$errorMsg[$error]; else if(!in_array($type, $permite)) $msg[] = "<b>$name:</b> Erro imagem não suportada!"; else if($size > $maxSize) $msg[] = "<b>$name:</b> Erro imagem ultrapassa limite de 5MB!"; else{ if(move_uploaded_file($tmp, $folder."/".$novoNome)) $sqlFotos = mysql_query("INSERT INTO galeria (IdImovel,imagem) VALUES ('$IdImovel','$novoNome')"); $sqlImoveis = mysql_query("INSERT INTO imoveis (CatID,Titulo,Valor,Cidade,Estado) VALUES ('$Categoria','$Titulo','$Valor','$Cidade','$Estado')"); echo '<script>alert("Cadastro realizado com sucesso")</script>'; } foreach($msg as $pop) echo $pop.'<br>'; } } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Agosto 1, 2014 Sua lógica está errada! ^_^ Primeiro você cadastra o imóvel e fora do "loop", pega o id deste cadastro com mysql_insert_id que é seu caso, seta em uma variavel para facilitar a vida, após isso faça o cadastro das fotos e com a chave estrangeira junto, no caso a última id gerada da tabela, o qual é resgatada com mysql_insert_id da table imoveis. :hehehe: Tem que haver um relacionamento. http://www.arquivodecodigos.net/dicas/mysql-aprenda-a-usar-chaves-estrangeiras-foreign-keys-em-suas-tabelas-mysql-3503.html http://www.devmedia.com.br/criando-uma-chave-estrangeira-no-mysql/20299 Compartilhar este post Link para o post Compartilhar em outros sites