1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Turismo (php + mysql)

Discussão em 'Web Development' iniciada por pedrofidalgo, 25 de Fevereiro de 2013. (Respostas: 12; Visualizações: 874)

  1. pedrofidalgo

    pedrofidalgo Power Member

    Boa tarde,

    Estou no 12º de Multimédia, e tenho de realizar a minha PAP.
    Bem, o que pensei fazer, e foi aceite, foi um website, em php+mysql, sobre o "turismo" da minha terra, Murtosa.

    Ou seja, a Murtosa tem 4 Freguesias, e tem bastantes Restaurantes, Cafés, Pensões, Edificios Municipais, etc.

    Então a ideia era criar um site, em que haveria uma barra de pesquisa, e o utilizador poderia pesquisar por sitios, esta barra ao escrever, iria aparecer um menu drop down(con recurso a ajax), em que eu ao escrever por exemplo Em, em baixo apareceriam já os pontos com aqueles caracteres na base de dados (exemplo: Emigrante).

    Depois, além desta pesquisa, queria que esta pesquisar fosse filtrada por Freguesias, e por Tipos. Ou seja, umas checkboxes, em que eu poderia escolher para pesquisar apenas na freguesia da Torreira e do Monte, e do tipo Restaurantes, por exemplo.

    A base de dados será esta:

    [​IMG]

    Agora, eu preciso de ajuda em criar a base de dados, não sei bem como fazer com o campo de imagem.. Porque eu no site, também não sei como, quero ter a opção de adicionar um novo sitio, em que escolho um nome, um tipo, uma freguesia, e o horário do establecimento ( também não sei como fazer isto, queria por tipo a opção de escolher das xx:xx ás xx:xx horas.) E ter a opção de fazer upload de uma foto para o sitio, mas não sei como fazer isto, pois como é óbvio nem toda a gente pode adicionar sitios, se não, vai correr mal.

    Algumas ideias/ajudas?

    Cumps.
     
  2. xpro

    xpro Power Member

    Não sei se conheces o phpmyadmin mas podes criar a base de dados por lá que é bastante fácil.
    Se queres controlar quem pode inserir sitios crias um sistema de autenticação para controlar os previlégios de cada utilizador, quanto às imagens podes ter uma pasta com as imagens e guardas as imagens que pretendes lá com o mesmo nome que for inserido na base de dados assim para mostrar as imagens basta usares o comando <?php print "<img src=img/".$row['imagem'].".jpg >\n"; ?>. O melhor é começares por criar a base de dados no phpmyadmin crias as tables principais e vais adicionando os campos que achares necessário, depois de teres isso começas a pensar no codigo do site. Se não perceberes o phpmyadmin diz que eu não me importo de ajudar.
     
  3. ftav

    ftav Power Member

    Se quer fazer isso das imagens, recomendo a compra do livro "Desenvolvimento de aplicações em PHP" da FCA. Tem lá isso explicadinho.
     
  4. pedrofidalgo

    pedrofidalgo Power Member

    As tabelas e isso sei criar no phpmyadmin, mas que tipo de campo uso para as imagens? E depois ao fazer upload delas, tenho de arranjar forma de o nome da imagem ser renomeado para o nome do "sitio", para depois, ao pesquisar esse sitio, a imagem aparecer e corresponder.

    Isso de criar um sistema de autenticação e esse menu de adicionar sitios só aparecer para os "admins", é muito dificil de fazer? Convinha ser uma forma de autenticacao oculta, pois nao faz sentido haverem usuários "normais", ou seja, sem permissões, neste site.
     
  5. pimpaz

    pimpaz Power Member

    Sugiro-te que não armazenes imagens na base de dados. Armazena-as fisicamente num pasta e guarda apenas o nome da imagem na base de dados.
     
  6. xpro

    xpro Power Member

    Não é muito dificil existem toturiais com sistemas quase prontos e bem explicados que podes adaptar ao teu caso basta meteres no google sistema de autenticaçao php+mysql e aparecem toturias passo a passo. Tal como o pimpaz, eu também guardo as imagens numa pasta e na base de dados apenas o nome da imagem o campo das imagens irá ser do tipo varchar.
     
  7. pedrofidalgo

    pedrofidalgo Power Member

    E como faço isso? Basicamente com o sistema de autenticação, tenho de arranjar uma forma de criar utilizadores, e esses utilizadores fazerem login de alguma forma, e para esses utilizadores, aparecer um novo menu, para adicionar um novo sitio, e depois aparece um form com os campos todos, e como faço no campo da imagem?!

    EDIT:
    http://blog.thiagobelem.net/upload-de-arquivos-como-tudo-funciona/

    isso serve para o que quero?

    Depois é só por a página que contem o form para criar um novo sitio oculta para quem nao tiver logado:

    http://blog.thiagobelem.net/criando-um-sistema-de-login-com-php-e-mysql/

    ou

    http://blog.thiagobelem.net/como-criar-um-sistema-de-login-com-niveis-de-permissao/
     
    Última edição: 26 de Fevereiro de 2013
  8. xpro

    xpro Power Member

    Sim crias uma página para registos, depois apenas os "administradores" ou o nivel que definires é que tem acesso á pagina para carregares imagens. Para inserir as imagens vais ter de criar um campo que te permita procurar a imagem no computador, depois uma página envia_imagem.php que será responsável por transferir a imagem do computador para o servidor, e pegar no nome que o arquivo recebe e fazes um insert lá na tabela com o nome da imagem.
    Não percebi bem se um ponto corresponde a um sitio se sim precisas de criar outra tabela de forma a poderes associar várias imagens ao mesmo ponto. TABELA IMG com os campos id_ponto e imagem. Não sei se foi confuso...
     
  9. pimpaz

    pimpaz Power Member

    No campo imagem fazes um campo de upload com html.
    Depois quando fores a processar os dados do formulário com php, guardas a imagem para o disco, alteras-lhe o nome (se quiseres) e guardas o nome na base de dados. Depois é só fazeres o load do nome e usar o caminho tipo (xxx.com/imagens/nomeimagem.jpeg...

    Acho que não perdes nada em investir 20 ou 30 euros no livro que a FCA lançou recentemente e que explicar pormenorizadamente essas coisas de uploads, sistemas de logins e afins. ;)
     
  10. pedrofidalgo

    pedrofidalgo Power Member

    Sim, um sitio = 1 ponto.

    Mas estou a pensar por só uma foto por sito/ponto.

    Mas estou confuso, o que é melhor, no sistema de autenticacao, qualquer um se poder registar? Ou apenas criar um utilizador, e esse utilizador ao fazer login tem acesso a essa página para inserir novo sitio? Se assim for, há forma de colocar este login de forma mais "escondida"? e assim não tinha de criar um form para novos utilizadores.
     
  11. xpro

    xpro Power Member

    Podes então criar diretamente um utilizador e uma passe na base de dados e depois no teu site colocas lá um botão que diz admin ao carregares lá ele leva-te para a página de login(que depois te dará acesso á pagina de administração) os outros utilizadores nao tem de se registar e quando entram na página de login poes la um titulo a dizer esta página destina-se ao administrador do site e um botão para voltar a página de inicio do teu site.

    Se vais meter uma imagem por sitio entao basta a tabela como tens e quando queres inserir uma imagem para um determinado sitio em vez de o formulário ter apenas o link do ficheiro ter também o nome do sitio a que a imagem irá ficar atribuida. Por ex
    <form action="envia_foto.php" method="post" enctype="multipart/form-data">
    < input type="file" name="Arquivo" id="Arquivo"><input type="text" name="sitio" id="sitio">< input type="submit" value="Enviar"></form>

    Se calhar ainda melhor para ser mais bonito era usar uma combobox em que os nomes ias buscar à base de dados mas começa por fazer assim e depois com mais prática melhoras.
     
    Última edição: 26 de Fevereiro de 2013
  12. pedrofidalgo

    pedrofidalgo Power Member

    SIm eu sei, tipo ao carregar a imagem seleccionar um sitio já existente na base de dados. Mas ao adicionar a foto, o sitio ainda não vai estar lá, pois eu ao entrar na página de admin, tenho o form de inserir novo sitio, e ai é que vou enserir o novo sitio, e ao mesmo tempo a foto. Há forma de renomear a foto para o mesmo nome que for dado para o sitio, e a mandar para images/, assim a foto ficava com o nome dado ao sitio.jpg, e depois ao pesquisar esse sitio, para buscar a foto, iria buscar á pasta images/ a foto com o nome do sitio.jpg/png ou o que fosse..
     
  13. xpro

    xpro Power Member

    Podes fazer isso se o POST enviar o link e o nome do sitio então na pagina criar_sitio.php(exemplo) primeiro fazes o insert na base de dados do sitio, nome da foto, horario e em seguida usas o código de upload de imagem com o nome de destino usas o nome do sitio que guardou antes ex($_POST['sitio']) usas esta variavel como nome de destino no codigo de upload da imagem.
     

Partilhar esta Página