Jump to content

Turismo PHP + MySQL


austinmrs

Recommended Posts

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. Pensei em criar um menu drop down ao passar o rato por cima do menu restaurantes, cafés, etc, em que por exemplo ao passar o rato por cima de restaurante, apareciam as freguesias, para clicar e pesquisar so restaurantes numa freguesia. até fácil, só select * from, e select * from *** where name like '%"feefwgf"%'...

A base de dados será esta:

http://dl.dropbox.com/u/46096897/Sem Título.jpg

Também vou criar uma tabela para usuários, para quem está logado poder adicionar novos sitios.

Agora, eu preciso de ajuda em criar a base de dados, não sei bem como fazer com o campo de imagem.. Só quero ter uma imagem por sitio, o melhor será guardar a imagem no base de dados, certo?

Ao criar o form para introduzir um novo sitio, como faço para a imagem que for feito o upload seja renomeada para o mesmo nome que foi dado para o sitio?

Exemplo:

Sitio: Café Porto

Imagem: 123.jpg

imagem será renomeada para café porto.jpeg. Porque depois, ao pesquisar por este café, como é que será possivel, por exemplo, aparecer o nome do café, e uma miniatura da imagem? E só depois ao clicar no café, é que abre o café com os contactos todos, e a morada?

Algumas ideias/ajudas?

Cumps.

Link to comment
Share on other sites

  • Replies 107
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Agora, eu preciso de ajuda em criar a base de dados, não sei bem como fazer com o campo de imagem.. Só quero ter uma imagem por sitio, o melhor será guardar a imagem no base de dados, certo?

Eu guardo na BD o caminho, podendo sequer nem ter que ter mais um campo. Posso atribuir o nome da imagem à chave primária da tabela.

Ao criar o form para introduzir um novo sitio, como faço para a imagem que for feito o upload seja renomeada para o mesmo nome que foi dado para o sitio?

Fazes assim:

if ($_FILES) {
if($_FILES['image'] && $_FILES['image']['size'] > 0){
 $ori_name = $_FILES['image']['name'];
 $tmp_name = $_FILES['image']['tmp_name'];
 $src = imagecreatefromjpeg($tmp_name);
 list($width,$height)=getimagesize($tmp_name);
 $newwidth=100;
 $newheight=($height/$width)*100;
 $tmp=imagecreatetruecolor($newwidth,$newheight);
 //vai buscar a extensao da imagem
 $extensao = explode(".", $ori_name);
 //echo $extensao[0]; //resto da imagem, da lugar ao id
 //echo $extensao[1]; // extensao
 imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
 $filename = "images/".$_POST['id'].'.'.$extensao[1]; //concatena id com a extensao
 imagejpeg($tmp,$filename,100);
 $picture = "images/".$_POST['id'].'.'.$extensao[1]; //concatena id com a extensao
 imagedestroy($src);
 imagedestroy($tmp);
}
}

Nota que estou a redimensionar a imagem, se não quiseres retiras o código que se encarga dessa operação.

imagem será renomeada para café porto.jpeg. Porque depois, ao pesquisar por este café, como é que será possivel, por exemplo, aparecer o nome do café, e uma miniatura da imagem? E só depois ao clicar no café, é que abre o café com os contactos todos, e a morada?

Que tipo de pesquisa ? Em tabela ou que auto-completa à medida que vais digitando ?

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Link to comment
Share on other sites

Olá Amigo,

Eu sou de Ovar, caso precises de ajuda avisa 😉

Em relação as tuas questões tu na base de dados só vais guardar o URL (o link) de onde está a imagem, isto é, no formulário PHP vais enviar a tua imagem para uma pasta no servidor e enviar essa localização para a Base de Dados.

Em relação ao renomear já te foi explicado, quando tiveres a enviar a imagem para o servidor podes alterar o nome e muito mais. 🙂

Bom trabalho!!!

Link to comment
Share on other sites

Obrigado desdejá pela ajuda!

Então, o melhor será começar por criar as tabelas no phpmyadmin..

Eu criei o campo imagem como mediumbloob, então vou apagar tudo, e criar de novo. Assim sendo, a bd só irá contar mesmo o nome do directório. Crio um campo para imagem ou não? Ou seja, a imagem ao fazer upload é renomeada para o nome do ponto, e irá ser posta em /images , para depois ao pesquisar por aquele ponto, aparecer a imagem. O que queria era que aparecesse só mesmo a imagem em pequeno, e depois ampliava . Vi este script que parece fazer o que quero:

http://lokeshdhakar.com/projects/lightbox2/

Então agora ajuda para criar as tabelas. Será algo assim:

Freguesias

id_freguesia

nome_freguesia

Pontos

id_ponto

nome_ponto

contacto

horário

morada

id_freguesia

id_tipo

imagem

coordenadas

tipo

id_tipo

nome_tipo

Cumps

Link to comment
Share on other sites

Eu criei o campo imagem como mediumbloob, então vou apagar tudo, e criar de novo. Assim sendo, a bd só irá contar mesmo o nome do directório. Crio um campo para imagem ou não? Ou seja, a imagem ao fazer upload é renomeada para o nome do ponto, e irá ser posta em /images , para depois ao pesquisar por aquele ponto, aparecer a imagem.

Se associares o nome da imagem a um id (que seja chave-primária) não é necessário um campo imagem.

Para já as tabelas parecem-me bem. Tens as relações bem feitas ?

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Link to comment
Share on other sites

Se associares o nome da imagem a um id (que seja chave-primária) não é necessário um campo imagem.

Para já as tabelas parecem-me bem. Tens as relações bem feitas ?

mas eu acho que vou criar o campo imagem, para me organizar melhor. vou criar as tabelas todas de novo, só uma coisa, o campo imagem, fica em varchar?

e outra coisa, estou com problemas em criar as relacoes no php my admin .. nao consigo mudar a storage engine para innodb , não me aparece essa opção..

Também vou criar uma tabela para usuarios

usuarios

id_usuario

nome_usuario

senha_usuario

esta tabela terá apenas um usuário, pois não faz sentido uma pessoa se poder registar, servirá apenas para o admin fazer login para adicionar novos pontos. ou seja a parte com o form para introduzir um novo sitio, irá ser só visivel para quem tiver logado.

Edited by austinmrs
Link to comment
Share on other sites

Está bem, isso já é contigo 🙂

Sim, pode ficar.

Estás a ir às operações dentro de uma tabela ? Se sim, deveria aparecer.. e já agora, porque queres mudar ?

eu usava o mysql na linha de comandos, ou seja para criar relações usava o comando references , e agora aqui estou com dificuldados em criar as relações entre as tabelas.

Link to comment
Share on other sites

Não não, esquece isso.

Vê também se essa versão dp phpmyadmin tem esta opção: http://woork.blogspot.pt/2007/11/correct-approach-to-define.html

não.. sabes de algum servidor free que seja porreiro?

é que não queria usar local, pois assim na apresetação teria de ir lá antes instalar etc.. assim ficava tudo alojado, era mais simples

Link to comment
Share on other sites

não.. sabes de algum servidor free que seja porreiro?

Pelo que sei esse é porreiro, dentro do possível..

é que não queria usar local, pois assim na apresetação teria de ir lá antes instalar etc.. assim ficava tudo alojado, era mais simples

instalar o quê ? Pôr o apache e o mysql a correr não é instalar nada 🙂

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Link to comment
Share on other sites

Nunca usei, mas os pressupostos devem ser os mesmos em todos os servidores locais.

Eu utilizo o xampp.

Segue a demonstração para veres como é simples. http://www.apachefriends.org/en/xampp-windows.html

e que tal escrever SQL ?

Era para mim ou para ele ? 🙂

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.