Ir para conteúdo

POWERED BY:

Arquivado

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

Carcleo

[Resolvido] lógica

Recommended Posts

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

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

  `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

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

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

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

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

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

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

basta retirar o array_slice.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.