Ir para conteúdo

POWERED BY:

Arquivado

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

formalivre

Cadastro de empresa

Recommended Posts

Bom dia pessoal.

Estou tentando fazer um sistema de cadastro de empresas.

Tenho uma tabela em MySQL desta forma:

chave | ativa | empresa | indice | cidade |

Começo minha consulta pela cidade com este código - portal.php

<? include("config.php"); ?>
<?php 

mysql_select_db($db);

$consulta = "SELECT cidade FROM portal GROUP BY cidade";

$resultado = mysql_query($consulta);

while ($reg = mysql_fetch_array($resultado))

echo"<a href='http://www.emcondominios.com.br/portal_indice.php?concidade=$reg[cidade]'>$reg[cidade]</a><br>";

echo "Número de linhas retornadas: ".mysql_num_rows($resultado);
mysql_close(); 
?>
<form method="GET" action="http://www.emcondominios.com.br/portal_indice.php">
<fieldset>
<label for="consulta">Buscar:</label>
<input type="text" id="consulta" name="consulta" maxlength="255" />
<input type="submit" value="OK" />
</fieldset>
</form>

E encontro os índices de produtos e serviços destas cidades - portal_indice.php

<? include("config.php"); ?>
<?php

// Configuração do script
// ========================
$_BS['PorPagina'] = 50; // Número de registros por página


// Verifica se foi feita alguma busca
// Caso contrario, redireciona o visitante
if (!isset($_GET['concidade'])) {
header("Location: http://www.meusite.com.br/");
exit;
}
// Se houve busca, continue o script:

// Salva o que foi buscado em uma variável
$busca = $_GET['concidade'];
// Usa a função mysql_real_escape_string() para evitar erros no MySQL
$busca = mysql_real_escape_string($busca);

// ============================================

// Monta a consulta MySQL para saber quantos registros serão encontrados
$sql = "SELECT COUNT(*) AS total FROM `portal` WHERE (`ativa` = 1) AND ((`cidade` LIKE '%".$busca."%') OR ('%".$busca."%'))";
// Executa a consulta
$query = mysql_query($sql);
// Salva o valor da coluna 'total', do primeiro registro encontrado pela consulta
$total = mysql_result($query, 0, 'total');
// Calcula o máximo de paginas
$paginas =  (($total % $_BS['PorPagina']) > 0) ? (int)($total / $_BS['PorPagina']) + 1 : ($total / $_BS['PorPagina']);

// ============================================

// Sistema simples de paginação, verifica se há algum argumento 'pagina' na URL
if (isset($_GET['pagina'])) {
$pagina = (int)$_GET['pagina'];
} else {
$pagina = 1;
}
$pagina = max(min($paginas, $pagina), 1);
$inicio = ($pagina - 1) * $_BS['PorPagina'];

// ============================================

// Monta outra consulta MySQL, agora a que fará a busca com paginação
$sql = "SELECT * FROM `portal` WHERE (`ativa` = 1) AND ((`cidade` LIKE '%".$busca."%') OR ('%".$busca."%')) ORDER BY `indice` ASC LIMIT ".$inicio.", ".$_BS['PorPagina'];
// Executa a consulta
$query = mysql_query($sql);

// ============================================

// Começa a exibição dos resultados
echo "<p>Resultados ".min($total, ($inicio + 1))." - ".min($total, ($inicio + $_BS['PorPagina']))." de ".$total." resultados encontrados para '".$_GET['concidade']."'</p>";
// <p>Resultados 1 - 20 de 138 resultados encontrados para 'minha busca'</p>

echo "<ul>";
while ($resultado = mysql_fetch_assoc($query)) {
$indice = $resultado['indice'];
$link = 'http://www.emcondominios.com.br/portal_anuncio.php?concidade='.$_GET['concidade'].'&consulta=' . $resultado['indice'];
echo "<li>";
echo '<a href="'.$link.'" indice="'.$indice.'">'.$indice.'</a><br />';
echo "</li>";
}
echo "</ul>";

// ============================================

// Começa a exibição dos paginadores
if ($total > 0) {
for($n = 1; $n <= $paginas; $n++) {
echo '<a href="?concidade='.$_GET['concidade'].'&pagina='.$n.'">'.$n.'</a>  ';
}
}

?>

Até aqui, tudo certo, funcionando bem.

Quando seleciono um índice ele deveria mostrar as empresas cadastradas neste índice da cidade selecionado anteriormente.

Mas o filtro da cidade se perde e está mostrando todas as empresas de todas as cidades. - portal_anuncio.php

<? include("config.php"); ?>
<?php

// Configuração do script
// ========================
$_BS['PorPagina'] = 50; // Número de registros por página


// Verifica se foi feita alguma busca
// Caso contrario, redireciona o visitante
if (!isset($_GET['consulta'])) {
header("Location: http://www.meusite.com.br/");
exit;
}
// Se houve busca, continue o script:

// Salva o que foi buscado em uma variável
$concidade = $_GET['concidade'];
$busca = $_GET['consulta'];
// Usa a função mysql_real_escape_string() para evitar erros no MySQL
$busca = mysql_real_escape_string($busca);

// ============================================

// Monta a consulta MySQL para saber quantos registros serão encontrados
$sql = "SELECT COUNT(*) AS total FROM `portal` WHERE (`ativa` = 1) AND ((`indice` LIKE '%".$busca."%') OR ('%".$busca."%'))";
// Executa a consulta
$query = mysql_query($sql);
// Salva o valor da coluna 'total', do primeiro registro encontrado pela consulta
$total = mysql_result($query, 0, 'total');
// Calcula o máximo de paginas
$paginas =  (($total % $_BS['PorPagina']) > 0) ? (int)($total / $_BS['PorPagina']) + 1 : ($total / $_BS['PorPagina']);

// ============================================

// Sistema simples de paginação, verifica se há algum argumento 'pagina' na URL
if (isset($_GET['pagina'])) {
$pagina = (int)$_GET['pagina'];
} else {
$pagina = 1;
}
$pagina = max(min($paginas, $pagina), 1);
$inicio = ($pagina - 1) * $_BS['PorPagina'];

// ============================================

// Monta outra consulta MySQL, agora a que fará a busca com paginação
$sql = "SELECT * FROM `portal` WHERE (`ativa` = 1) AND ((`indice` LIKE '%".$busca."%') OR ('%".$busca."%')) ORDER BY `empresa` ASC LIMIT ".$inicio.", ".$_BS['PorPagina'];
// Executa a consulta
$query = mysql_query($sql);

// ============================================

// Começa a exibição dos resultados
echo "<p>Resultados ".min($total, ($inicio + 1))." - ".min($total, ($inicio + $_BS['PorPagina']))." de ".$total." resultados encontrados para '".$_GET['consulta']."' - '".$_GET['concidade']."'</p>";
// <p>Resultados 1 - 20 de 138 resultados encontrados para 'minha busca'</p>

echo "<ul>";
while ($resultado = mysql_fetch_assoc($query)) {
$empresa = $resultado['empresa'];
$link = 'http://www.emcondominios.com.br/portal_anuncio.php?indice=' . $resultado['indice'];
echo "<li>";
echo '<a href="'.$link.'" empresa="'.$empresa.'">'.$empresa.'</a><br />';
echo "</li>";
}
echo "</ul>";

// ============================================

// Começa a exibição dos paginadores
if ($total > 0) {
for($n = 1; $n <= $paginas; $n++) {
echo '<a href="?consulta='.$_GET['consulta'].'&pagina='.$n.'">'.$n.'</a>  ';
}
}

?>

Eu consegui recuperar o GET na cidade mas não sei como usar isso como um filtro no banco de dados.

Exemplo do filtro que preciso:

São Paulo > Academia > Academia do Joaquim em São Paulo.

 

Espero que tenha conseguido explanar a minha dúvida.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$query = "SELECT * FROM portal WHERE cidade = '$cidade'";

 

if(!empty($_GET['indice'])){

$query .= " AND indice = '".$_GET['indice']."'";

}

 

if(!empty($_GET['id_empresa'])){

$query .= " AND id_empresa = '".$_GET['id_empresa']."'";

}

 

Ai vc já pega todas as empresas da cidade com aquela categoria;

 

 

foreach($resultado_da_query as $item){

 

// monta o link

 

}

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.