Ir para conteúdo

POWERED BY:

Arquivado

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

mbpp

search form e tabela relacional

Recommended Posts

Oi tudo bem? Espero ter uma ajuda num problema, tenho uma search form que faz a pesquisa por todas as localizacoes na minha base dados e nos registos de alojamentos, nas localizações tenho 3 tabelas sendo cada tabela um nivel, e na tabelas dos alojamentos tenho as 3 colunas das localizacoes onde tem as 3 localizações a que pertence.

 

Agora é o seguinte, eu nas 2 localizacoes tenho as localizaçoes por string e a outra localização que é a localizaçao pai é por id na tabela dos alojamentos.

 

Se reparem na query abaixo:

 

$sql= "SELECT * FROM hostels WHERE tipo_hostel LIKE '".$tipo_hostel."' OR distrito LIKE '".$alojamento."' OR freguesia LIKE '".$alojamento."' OR concelho LIKE '".$alojamento."' OR hostel_titulo LIKE '".$alojamento."'";

 

A search form funciona bem, mas o problema é que se procurar na search por nome de distrito ele não me encontra na tebala "hostels", isso porque a coluna "distrito" tem só o "id" que está ligado ao nome, como poderei fazer com que quando procuro pela nome do distrito ele procure também a que id na coluna "distrito" está relacionado na tabela "distritos"?

 

Abaixo deixo como está as tabelas

 

distritos

- id;

- nome;

 

hostels

- tipo_hostel (está em texto)

- distrito (int)

- freguesia;(está em texto)

- concelho(está em texto)

- hostel_titulo (está em texto)

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se entendi direito, mais você quer pesquisa pelo nome do distrito?

 

Se for, tenta isso

SELECT * FROM hostels INNER JOIN distritos ON hostels.distrito = distritos.id WHERE distritos.nome LIKE '%sao%paulo%';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendo o problmea, o queyr, funciona, eexperimentei no phpmyadmin, mas quando implemento no meu search form ele não me traz os resultados, so traz de no GET vier o id mas nao o nome que o id que se refere, abaixo deixo o meu codigo, espero que saibam qual poderá ser o problema:

 

search:

<form action="resultados.php" enctype="multipart/form-data" method="GET" class="fm NiceIt srch">
    			
    			<h2>Região:</h2>
   			  <div class="selectbox clearfix">
    				
                     <select name="distrito" class="distrito">
    <option name="distrito" selected="selected">--Região--</option>
    <?php
$sql_local=mysql_query("select * from distritos order by ID ASC");
while($row=mysql_fetch_array($sql_local))
{
echo '<option value="'.$row['NOME'].'">'.$row['NOME'].'</option>';
 } ?>
  </select>
                    
			    </div>
                	
                	
    			
    			<div class="search-button clearfix">
    				<input type="submit" name="search" value="Pesquisar Alojamento" class="search-property" />
    			</div>
    		</form>

 

resultados.php

 

// Guardar a informacao numa variavel
//Buscar informacao Base Dados

$alojamento = $_GET['alojamento'];
$tipo_hostel = $_GET['tipo_hostel'];
$distrito = $_GET['distrito'];
$sql= "SELECT * FROM hostels INNER JOIN distritos ON hostels.distrito = distritos.ID WHERE distritos.NOME = '$distrito'";

$consulta_hostel = mysql_query($sql);

if($consulta_hostel){
	while($mostrar_hostel = mysql_fetch_array($consulta_hostel)){
		$titulo_hostel = $mostrar_hostel['hostel_titulo'];
			$id_hostel = $mostrar_hostel['id_hostel'];
			$tipo_hostel = $mostrar_hostel['tipo_hostel'];
			$freguesia = $mostrar_hostel['freguesia'];
			$concelho = $mostrar_hostel['concelho'];
			$distrito = $mostrar_hostel['distrito'];
			$texto = $mostrar_hostel['texto'];
			
			$sql3 = "(SELECT * FROM distritos WHERE ID = '$distrito')";
			$sql_imagem ="SELECT * FROM imagens WHERE id_hostel = $id_hostel";
			
			$consulta_imagem = mysql_query($sql_imagem);
			$mostrar_imagem = mysql_fetch_array($consulta_imagem);
			$imagem = $mostrar_imagem['file'];
			
			$consulta_distrito = mysql_query($sql3);
			$mostrar_dis = mysql_fetch_array($consulta_distrito);
			$distrito_nome = $mostrar_dis['NOME'];
		
		
	$url = "$distrito_nome-$concelho-$freguesia-$titulo_hostel-$id_hostel";
  	$seo = strtolower($url);
    //Strip any unwanted characters
	$seo = preg_replace("/&([a-z])[a-z]+;/i", "$1", htmlentities($seo));
    //Clean multiple dashes or whitespaces
    $seo = preg_replace("/[\s-]+/", " ", $seo);
    //Convert whitespaces and underscore to dash
    $seo = preg_replace("/[\s_]/", "-", $seo);

    echo "
	<li class=\"item\">
              <div class=\"thumbnail\">
                <a href=\"turismorural-$seo.html\">
				<img src=\"$imagem\" height=\"100\"  />
				</a>
              </div>

              <p class=\"name\"><a class=\"bold\" href=\"turismorural-$seo.html\"><span>$titulo_hostel</span></a></p>

              <p class=\"capacity\"><strong>2-14</strong> pessoas</p>

              <p class=\"price\"><span class=
              \"sum\">35,00 €</span> pax/noite</p>
              <p class=\"geo\">$distrito_nome, $concelho, $freguesia</p>

              <p class=\"slogan\">$texto</p>
            </li>";
    }
    }else{
	echo "No accomodations";
	}


Funciona afinal, estava editando mas noutra pagina kkk.

obrigado

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.