0

Portal Imobiliário, como retornar com links do banco de dados?

criado por Bruno em 01/10/2012 7:04am
Bom dia pessoal estou fazendo uma busca com filtro para um portal imobiliário, e estou com uma dificuldade básica porém não consigo resolver, vejam só:

Este é o Banco de dados:

-- phpMyAdmin SQL Dump
-- version 3.4.3.2
-- http://www.phpmyadmin.net
--
-- Servidor: 127.0.0.1
-- Tempo de Geração: 02/11/2011 às 18h45min
-- Versão do Servidor: 5.5.15
-- Versão do PHP: 5.3.8
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Banco de Dados: `imoveis`
--
-- --------------------------------------------------------
--
-- Estrutura da tabela `bairros`
--
CREATE TABLE IF NOT EXISTS `bairros` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `bairro` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Extraindo dados da tabela `bairros`
--
INSERT INTO `bairros` (`id`, `bairro`) VALUES
(1, 'Copa Cabana'),
(2, 'Farol da Barra');
-- --------------------------------------------------------
--
-- Estrutura da tabela `imoveis`
--
CREATE TABLE IF NOT EXISTS `imoveis` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tipo` int(11) NOT NULL,
  `bairro` int(11) NOT NULL,
  `titulo` varchar(255) NOT NULL,
  `preco` decimal(10,2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Extraindo dados da tabela `imoveis`
--
INSERT INTO `imoveis` (`id`, `tipo`, `bairro`, `titulo`, `preco`) VALUES
(1, 1, 1, 'Um duplex em copa cabana', '17000.00'),
(2, 2, 1, 'Uma casa em copa cabana', '20000.00');
-- --------------------------------------------------------
--
-- Estrutura da tabela `tipo`
--
CREATE TABLE IF NOT EXISTS `tipo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tipo` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
--
-- Extraindo dados da tabela `tipo`
--
INSERT INTO `tipo` (`id`, `tipo`) VALUES
(1, 'duplex'),
(2, 'Casa'),
(3, 'Apartamento');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Este a página que faz o trabalho:

<?php
$conectar = mysql_connect('localhost','root','') or die(mysql_error());
if($conectar){
  $banco = mysql_select_db('imoveis');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Listar Imoveis</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<span>Tipo</span><br />
        <select name="tipo">
         <option value="" selected="selected">Selecione o tipo...</option>
                <?php
   $pega_tipos = mysql_query("SELECT * FROM tipo ORDER BY id DESC");
   if(mysql_num_rows($pega_tipos) == 0){
        echo '<option value="">Não foram encontrados tipos ainda</option>';
   }else{
        while($linha = mysql_fetch_array($pega_tipos)){
         echo '<option value="'.$linha['id'].'">'.$linha['tipo'].'</option>';
        }
   }
  ?>
        </select><br />
        <span>Bairro</span><br />
        <select name="bairro">
         <option value="" selected="selected">Selecione o bairro...</option>
                <?php
   $pega_bairro = mysql_query("SELECT * FROM bairros ORDER BY id DESC");
   if(mysql_num_rows($pega_bairro) == 0){
        echo '<option value="">Não foram encontrados bairros ainda</option>';
   }else{
        while($linhaB = mysql_fetch_array($pega_bairro)){
         echo '<option value="'.$linhaB['id'].'">'.$linhaB['bairro'].'</option>';
        }
   }
  ?>
        </select><br />
        <span>Preço</span><br />
        <select name="preco">
         <option value="" selected="selected">Selecione o preço...</option>
                <option value="15000">Até 15000</option>
                <option value="20000">Até 20000</option>
                <option value="30000">Até 30000</option>
                <option value="17000">Até 17000</option>
        </select><br />
   
        <input type="hidden" name="acao" value="enviar" />
        <input type="submit" value="buscar" />
</form>
<hr />
<?php if(isset($_POST['acao']) && $_POST['acao'] == 'enviar'){
$tipo = $_POST['tipo'];
$bairro = $_POST['bairro'];
$preco = $_POST['preco'];
switch($preco){
  case '15000';
  $valor = 'AND preco <= 15000';
  break;
  case '20000';
  $valor = 'AND preco BETWEEN 15000 AND 20000';
  break;
  case '30000';
  $valor = 'AND preco BETWEEN 20000 AND 30000';
  break;
  case '17000';
  $valor = 'AND preco BETWEEN 15000 AND 17000';
  break;
}
$seleciona_imovel = mysql_query("SELECT * FROM imoveis WHERE tipo = '$tipo' AND bairro = '$bairro' $valor");
if(mysql_num_rows($seleciona_imovel) == 0){
  echo '<h1>Desculpe, mais sua busca, não retornou resultados</h1>';
}else{
  while($linhaImovel = mysql_fetch_array($seleciona_imovel)){
   echo $linhaImovel['titulo'];
  }
}
}
?>
</body>
</html>


Quando é feita a busca ele retorna o Título que esta no banco de dados como texto, como eu poderia tornar este campo um link, manual mesmo, aqui o final do código:

echo '<h1>Desculpe, mais sua busca, não retornou resultados</h1>';
}else{
while($linhaImovel = mysql_fetch_array($seleciona_imovel)){
echo $linhaImovel['titulo'];
}

Existe uma forma de criar um campo url no banco e ele aparecer na página do resultado como LINK? trazendo http://www.xxxxxxx.xxx.xx?

Obrigado à todos

Lista de Respostas:

+1
01/10/2012 4:10pm
(~11 anos atrás)
Jayme A. C. Gimenez respondeu:
Parece que o que você quer é bem simples. Mas não sei se entendi bem (não dá para olhar esse monte de códigos em um simples forum, certo?)...

Um valor texto virá do banco e você quer criar um link com ele, sendo que esse valor texto é o nome da página que o link acessará, é isso?

Exemplo: o valor de $linhaImovel['titulo'] vem exemplo_1.com.br e você quer que ele apareça como link para www.exemplo_1.com.br , seria isso?

Se for isso, é simples: basta colocar o valor que vem do bd numa tag de link HTML ( <a href=''> ), fazendo, se necessárias, as devidas concatenações para montar o nome certo que vai no href da tag de link.

+1
01/10/2012 5:12pm
(~11 anos atrás)
Jayme A. C. Gimenez respondeu:
Nunca usei o dreamweaver; então, não sei dizer se isso pode, ou não, ser um bug dele ou uma dificuldade sua em usar o dreamweaver para isso.

Os valores de $linhaImovel['titulo'] chegam como? Dê um exemplo (seria já www.exemplo.com.br , ou ainda sem o www, ou vem como uma página interna do sistema, tipo nova_pagina.php, por exemplo?).

Geralmente, você tem que colocar a tag <a no echo:

echo "<a papapa>"

mas também, nesse echo, colocar pontos nos lugares certos, para concatenar o que é HTML com as variáveis PHP.

+1
02/10/2012 8:43pm
(~11 anos atrás)
Fábio Moura respondeu:
Vejamos, vou tentar ser o mais explicativo possível.

O ideal seria vc ter 2 campos: titulo e link ( por exemplo )

Dai vc poderia fazer assim :

echo '<h1>Desculpe, mais sua busca, não retornou resultados</h1>';
}else{
while($linhaImovel = mysql_fetch_array($seleciona_imovel)){
$imovel=$linhaImovel['titulo'];
$link=$linhaImovel['link'];
echo '<a href="'.$link.'">'.$imovel.'</a>';
}

Ou seja, para facilitar e ficar mais limpo, criamos duas variáveis e depois fazemos a mistura do php com o html mais ordenadamente, pois o que chegaria ao navegador seria :

<a href="linkdobancodedados.html">titulodobancodedados</a>

0
01/10/2012 4:54pm
(~11 anos atrás)
Bruno respondeu:
Jayme é exatamente isso que eu quero fazer uso dreamweaver para os códigos e ele me diz que há erro em todas as formas que eu ponho estas tags, pelo que entendi seria colocar o valor de echo nesta tag mas não funciona veja o que fiz:
(esta é alinha que traz um valor do banco em texto

echo $linhaImovel['titulo'];

ai faço o seguinte com as tags href:

<a href='$linhaImovel['titulo']'>;

tentei de várias formas mas não acerto, bah! teria alguma sugestão?



0
01/10/2012 8:06pm
(~11 anos atrás)
Bruno respondeu:
creio que o mais prático seria chegar do banco apenas "pagina.html" mas para mim seria de qualquer forma fácil de alimentar o banco,

mesmo que viesse completo "http://www.site.xxx.xx/pagina.html",

o que preciso é fazer funcionar heheh,

o que retorna depois de fazer desta forma:

echo <a href='$linhaImovel['titulo']'>;

é:

SCREAM: Error suppression ignored for
( ! ) Parse error: syntax error, unexpected '<' in C:\wamp\www\busca_imoveis\index.php on line 81


isso ajuda a entender?


0
03/10/2012 12:20am
(~11 anos atrás)
Bruno respondeu:
Preciso transmitir minha alegria em receber ajuda dos amigos aqui do fórum, já esta na minha lista de favoritos e indicações!

Seguindo as ajudas recebidas por:

Jayme A. C. Gimenez

Fábio Moura,

aqui esta o resultado:

https://galloti.eti.br/buscaimoveis.php

Graças aos amigos esta tudo ok, ainda inseri o campo Cidade para ficar exatamente como o projeto pede, para que quiser ver funcionando faça a busca através do filtro:

Duplex - São Paulo - Copa cabana - Até 170000, veja o resultado!

Totalmente agradecido e estou ai para retribuir de alguma forma, Abraço à todos "tópico encerrado"

0
03/10/2012 9:34am
(~11 anos atrás)
Bruno respondeu:
+ um detalhe que passou despercebido:

Como fazer para a acentuação dos campos retornar sem erro este possui erro em São Paulo pelo caractere veja:

https://galloti.eti.br/buscaimoveis.php

Abraço

0
14/10/2012 4:22pm
(~11 anos atrás)
Bruno respondeu:
Gente o negócio ficou feio, hehe

Quando retorna desta forma:

echo <a href='$linhaImovel['titulo']'>;

que funciona perfeitamente, mas tem mais de um valor ele retorna tudo na mesma linha e grudado, como eu poderia dar um espaço de linha após cada valor que volta do banco?

Não tenho idéia de como fazer isto!

0
02/01/2013 9:49pm
(~11 anos atrás)
jesse alves respondeu:
pessoal, por favor estou precisando da ajuda de vocês, ja pesquisei em todo lugar possivel...

estou com dificudade no meu código, ja resolvi coisa pior mas isso n estou conseguindo...

é quase parecido com a necessidade do amigo ai em cima...

eu estou criando um site onde o usuario posta anuncios diarios ele poderá postar quantos anuncios quiser, ja disponibizei uma combo que da a opção de 1 a 10 anuncios de uma vez no caso se ele seleciona 10 os dados digitados no formulario serão gerados 10 vezes... e para cada anuncio gerado será gerado tbm um link.

o eu estou usando o ID dos dados no banco pra gerar o link pois é autoincrement assim o link será somente do determinado assunto... até ai tudo bem

o que preciso é que quando o usuario clicar nesse link o site exiba os dados correspondentes a esse link... eu n consigo fazer isso me ajudem por favor...

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)