Carcleo 4 Denunciar post Postado Fevereiro 27, 2012 Pessoal. Me deem uma ideia aqui. Um cliente me pediu para fazer um site de imobiliaria. Porem, ele quer um amiente administrativo aonde ele inclua fotos dos imóveis que cvolocará à venda. Eu já fiz isso. Agora o cliente me pediu uma particularidade: No site que esta funcionando, para cada imóvel, no formulário de cadastro, tem la 10 campos foto(tipo file)para ele enviar(ou não) 10 fotos(ou menos). Porem, nem sempre ele irá colocar 10 fotos e corre o risco de ele colocar mais que 10 fotos em algum imovel. O que eu queria fazer(e preciso de ajuda para a logica). Se o admin clikar em um botão, abre um campo file para ele enviar uma foto, caso ele desista da foto, é só ele clikar em um X quanquer e a caixa se fecha. Daí, a cada vez que ele clikar no botão, abrir-se á outa caixa de fotos. Daí depois é fazer o upload de fotos. Me ajudem, me de uma ideia de como fazer isso levando em conta uma possivel alteraçao desse registro no banco mais tarde. obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Fevereiro 27, 2012 mostre a modelagem do banco, e seu script php... Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Fevereiro 27, 2012 Pois é. A parte nova ainda vou começar a fazer. Nao tem nada ainda. Daí o pedido de ideias. Sobre o que se tem hoje seria isso: http://www.dinamicaimoveis.com.br Segue o banco que hora existe: CREATE TABLE `admin` ( `Id` int(4) unsigned NOT NULL AUTO_INCREMENT, `Nome` varchar(100) NOT NULL DEFAULT '', `Usuario` varchar(4) NOT NULL DEFAULT '', `Senha` varchar(4) NOT NULL DEFAULT '', `Bloqueio` char(1) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; CREATE TABLE `clientes` ( `Id` int(4) unsigned NOT NULL AUTO_INCREMENT, `Nome` varchar(100) NOT NULL DEFAULT '', `Endereco` varchar(200) NOT NULL DEFAULT '', `Email` varchar(100) NOT NULL DEFAULT '', `Telefone` varchar(10) NOT NULL DEFAULT '', `cel` varchar(10) DEFAULT NULL, `Cpf` varchar(11) DEFAULT '', `Cnpj` varchar(14) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=MyISAM AUTO_INCREMENT=94 DEFAULT CHARSET=latin1; CREATE TABLE `email` ( `Id` int(4) unsigned NOT NULL AUTO_INCREMENT, `Nome` varchar(100) NOT NULL DEFAULT '', `Email` varchar(100) NOT NULL DEFAULT '', `Titulo` varchar(100) NOT NULL DEFAULT '', `Texto` longblob NOT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; CREATE TABLE `email_anuncio` ( `Id` int(4) unsigned NOT NULL AUTO_INCREMENT, `Nome` varchar(100) NOT NULL DEFAULT '', `Email` varchar(100) NOT NULL DEFAULT '', `Titulo` varchar(100) NOT NULL DEFAULT '', `Texto` text NOT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; CREATE TABLE `imoveiscadastrovenda` ( `Id` int(4) unsigned NOT NULL AUTO_INCREMENT, `Codigo` varchar(10) NOT NULL DEFAULT '', `IdNomeProprietario` int(4) NOT NULL DEFAULT '0', `Imovel_Tipo` varchar(3) NOT NULL DEFAULT '', `Endereco` varchar(200) NOT NULL DEFAULT '', `Bairro` varchar(80) DEFAULT NULL, `Cidade` varchar(80) DEFAULT NULL, `Estado` char(2) DEFAULT NULL, `Pais` char(3) DEFAULT NULL, `Foto` text, `Foto2` text, `Foto3` text, `Foto4` text, `Foto5` text, `Foto6` text, `Foto7` text, `Foto8` text, `Foto9` text, `Foto10` text, `Preco` varchar(11) NOT NULL DEFAULT '0', `Baixa` char(1) DEFAULT NULL, `Descricao` longblob, `Motivo` text, `Valor_venda` varchar(15) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=utf8; Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 27, 2012 `Foto` text, `Foto2` text, `Foto3` text, `Foto4` text, `Foto5` text, `Foto6` text, `Foto7` text, `Foto8` text, `Foto9` text, `Foto10` text, essa modelagem é problemática, e não vai te atender. Estude Normalização de Dados. você devia ter uma outra tabela apenas para as fotos, que se relacionaria com o ID de cada imovel. Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Fevereiro 27, 2012 William. Gostei da ideia e vou fazer assim. Uma tabela só para foto. Mas, e lógica das inserçoes personalizadas(quantas fotos o cliente quiser) e as consequentes ediçoes do registro(o que me dá mais calafrios) ?? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 27, 2012 ai você trabalha com arrays amigo. não precisa ter medo.. é simples, e depois fica até mais fácil. Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Fevereiro 27, 2012 Mas, e lógica das inserçoes personalizadas(quantas fotos o cliente quiser) Essa parte do upload você pode fazer assim: html <form method="post" action="" enctype="multipart/form-data"> <input name='uploads[]' type="file" multiple="multiple"/> <button type="submit">Send</button> </form> PHP :seta: array_slice opção 1 <?php if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) { foreach( $_FILES[ 'uploads' ] as &$array ) { $array = array_slice( $array, 0, 10 ); } var_dump( $_FILES ); } ?> opção 2 <?php if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) { array_walk( $_FILES[ 'uploads' ], function( &$array ) { return $array = array_slice( $array, 0, 10 ); } ); var_dump( $_FILES ); } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Fevereiro 28, 2012 A parte do html tambem bate. Como vou dar a oção ao cliente de escolher quantas fotos enviar, isso sem colocar lá um imput(entre com a quantidade de fotos)? Derepente div, to na duvida! Outra coisa. nesse codigo .....0,10) voce esta limitando o array em 10 fotos. E, se o cliente quiser 15? 20? ou ainda só 3, ou nenhuma? Entendeu? Esse é o problema. Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Fevereiro 28, 2012 Assim como está ele já pode escolher quantas quer enviar, você pode selecionar quantas fotos quiser e o script vai limitar a apenas 10 fotos(o limite) Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Fevereiro 28, 2012 Pois é: nesse codigo .....0,10) esta limitando o array em 10 fotos. E, se o cliente quiser 15? 20? ou ainda só 3, ou nenhuma? Entendeu? Esse é o problema. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 28, 2012 basta retirar o array_slice. Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Fevereiro 28, 2012 Só retirar? Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Fevereiro 28, 2012 A parte do html tambem bate. Como vou dar a oção ao cliente de escolher quantas fotos enviar, isso sem colocar lá um imput(entre com a quantidade de fotos)? Derepente div, to na duvida! Outra coisa. nesse codigo .....0,10) voce esta limitando o array em 10 fotos. E, se o cliente quiser 15? 20? ou ainda só 3, ou nenhuma? Entendeu? Esse é o problema. coloca um campo so de upload, no backend faz-se um loop, e no frontend, você coloca um js pra duplicar o campo de upload se ele kiser mais de uma foto...porem, eu acho melhor colocar uma tabela so pra imagens de imoveis na sua modelagem, ae vcusa chave estrangeira pra referenciar as imagens pra seu imovel...pq seu banco vai ficar muito baguncado, seria bom normalizar isto... Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Fevereiro 28, 2012 Gente, obrigado. Entendi a lógica agora. Vou desenvolver com o banco normalizado conforme vocês me orinetaram e depois posto como ficou. Por enquanto, obrigado. Compartilhar este post Link para o post Compartilhar em outros sites