Jump to content


Ireno

Member Since 07/12/2009
Offline Last Active 22/01/2010, 17:06
-----

Posts I've Made

In Topic: Sistema De Filtro De Dados Em Php, Alguém Sabe?

10/12/2009, 12:07

Muito bom!

deu certinho. as variáveis se acumulam na url.
e somente os valores mudam, caso escolha a mesma variável porém com um valor diferente.
muito bom. merece meus aplausos.

se me der as honras quando eu terminar esse projeto aqui, acho que vou postar um tutorial
a respeito bem explicativo.

mas valeu mesmo!^_^

In Topic: Sistema De Filtro De Dados Em Php, Alguém Sabe?

09/12/2009, 13:07

Não tem necessidade de você usar sessão para isso, e esse arquivo on.php é dispensável.

Já que os valores são passados pela url, é só você colocar as variáveis GET nas novas urls para pegar os valores atuais.

Um simples exemplo:

echo escreve('index.php?cor=vermelho&vagas='.$_GET['vagas'],'Na cor vermelho')."<br />";


(ok2)


Olha, desculpe minha ignorância. mas não acompanhei seu raciocínio.
tem como você demonstrar aquela idéia com um exemplo um pouco mais elaborado.

é que pra mim ficou meio no ar, rs... e não consegui catar.

da uma olhada la no $_GET[] que você usou, tipo pra mim usar aquilo no caso ela já deve existir né, senão dá erro. Foi aí que me compliquei

acho que seria mais simples se eu pudesse pegar toda a url ATUAL e concatenar uma variável.
tem algum método pra isso?

fico no aguardo. valew

In Topic: Sistema De Filtro De Dados Em Php, Alguém Sabe?

09/12/2009, 08:56

:ponder:

Esse sistema será aberto para visitantes ou só quem tiver cadastro conseguirá utilizar? E qual será o tempo para os dados expirarem?


A idéia é ser aberto para todos. Para se fazer uma busca rápida. tipo submarino só que bem mais simples. só que eu não gostaria de sofrer ataques de robôs, por exemplo. Por isso que os filtros seriam acionados atravez de links (também não sei ao certo se isso evitaria um ataque). e quanto ao tempo para expirar não faço idéia, ainda estou tentando resolver o problema de como fazer. Mas a idéia é ser uma busca rápida.

Resolvi utilizar session:

veja a tabela do mysql:

--
-- Banco de Dados: `teste`
--

-- --------------------------------------------------------

--
-- Estrutura da tabela `filtro`
--

CREATE TABLE IF NOT EXISTS `filtro` (
  `Nome` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
  `VagasGaragem` int(11) NOT NULL,
  `Cor` varchar(45) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Extraindo dados da tabela `filtro`
--

INSERT INTO `filtro` (`Nome`, `VagasGaragem`, `Cor`) VALUES
('Casa - Morumbi', 3, 'vermelho'),
('Apartamento - Tatuapé', 2, 'verde'),
('Duplex - Itaim bibi', 2, 'amarelo'),
('Apartamento - Vila Prudente', 1, 'Azul');


Aqui está o arquivo index.php:

<?php session_start();
function conectar($servidor,$usuario,$senha,$banco){
		// Selecionar servidor
		$conectar = mysql_connect($servidor, $usuario, $senha)
		or die ("<h1>Erro ao conectar no BD</h1>");
		
		// Selecionar BD
		mysql_select_db($banco, $conectar);
}
function escreve($link,$label){
return '<a href="'.$link.'">'.$label.'</a>';
}

conectar("localhost","root","","teste");
?>
<!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>Filtro</title>
</head>

<body>
<p>
<?php 
	//Se filtrou pelo número de vagas.
	if(isset($_GET['vagas']) && is_numeric($_GET['vagas']) && isset($_GET['cor'])){
		$NumeroVagas = $_GET['vagas'];
		$cor = $_GET['cor'];
	$sql = "SELECT * FROM `filtro` WHERE `VagasGaragem` >= '$NumeroVagas' AND `Cor` = '$cor';";
		$res = mysql_query($sql);
	
			while($tudo = mysql_fetch_array($res)){
				echo utf8_encode($tudo['Nome'])."<br />";
			}
	}
	else if(isset($_GET['vagas']) && is_numeric($_GET['vagas'])){
		$NumeroVagas = $_GET['vagas'];
		$sql = "SELECT * FROM `teste`.`filtro` WHERE `VagasGaragem` >= '$NumeroVagas';";
		$res = mysql_query($sql);
	
			while($tudo = mysql_fetch_array($res)){
				echo utf8_encode($tudo['Nome'])."<br />";
			}
	}
	else{//SEM FILTROS
		echo 'Vamos iniciar uma busca, tendo como parâmetro o número de vagas <br />
				na garagem de um imóvel';
	}
	echo '<h2>No mínimo:</h2>';


	echo escreve('on.php?vagas=1&','1 (uma) vaga para garagem')."<br />";
	echo escreve('on.php?vagas=2&','2 (duas) vaga para garagem')."<br />";
	echo escreve('on.php?vagas=3&','3 (três) vaga para garagem')."<br />";
	echo '<br /><br /><br />';
	
	echo '<h2>Detalhando busca:</h2>';	
	echo escreve('on.php?cor=vermelho&','Na cor vermelho')."<br />";
	echo escreve('on.php?cor=verde&','Na cor verde')."<br />";
	echo escreve('on.php?cor=amarelo&','Na Amarelo')."<br />";
	echo escreve('on.php?cor=azul&','Na Azul')."<br />";
	
?>
</body>
</html>

e aqui está o carinha que 'acumula' as variáveis na url. é somente um teste, portanto se tentar deletar um filtro não vai conseguir, senão manualmente via url.

on.php:

<?php
session_start();


if(isset($_GET['vagas']) && is_numeric($_GET['vagas'])){
	$_SESSION['vars'] .= 'vagas='.$_GET['vagas'].'&';
}
else if(isset($_GET['cor'])){
	$_SESSION['vars'] .= 'cor='.$_GET['cor'].'&';
}
else
{$_SESSION['vars'] = '';}
			

header('Location: index.php?'.$_SESSION['vars']);
?>

Se alguém souber como melhorar isso será de grande ajuda, pois eu queria fazer de um jeito que fosse possível o usuário, na própria página index.php deletar a variável acumulada na url.
bueno.. é isso..

IPB Skin By Virteq