Ir para conteúdo

POWERED BY:

Arquivado

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

ejckson

Buscar um campo ou dois campos ou todos os campos INNER JOIN

Recommended Posts

Boa tarde ídolos Imasters! Saudações!

Sou novato no fórum e tenho apenas 1 semana estudando SQL.

Vamos ao assunto!

 

Estou com a seguinte dúvida?

 

Tenho o banco de dados:

 

Tabela: p_texto

 

id

categoria_id

modalidade_id

texto

numero

data_do_texto

 

Tabela: p_texto_cat

 

id_categoria

categoria

 

Tabela: p_texto_mod

 

id_modalidade

modalidade

 

Estou querendo desenvolver um filtro de busca em php para este banco.

Quero buscar um termo ou dois termos ou todos campos de uma vez com meu formulário.

 

Por exemplo: buscar os textos com intervalos de datas, e/ou modalidade, e/ou categoria.

 

Tenho o form:

 

<form id='userForm'>
   
    <div><input type='text' name='datainicial' placeholder='Data Iniciaç' /></div>
    <div><input type='text' name='datafinal' placeholder='Data Final' /></div>
    <div><input type='text' name='modalidade' placeholder='Modalidade' /></div>
    <div><input type='text' name='categoria' placeholder='Categoria' /></div>
    <div><input type='submit' value='Submit' /></div>
</form>

PHP

 


<?php  

$conexaoMySQL = mysql_connect("servidor.com","edob","************");
$bancoDados = mysql_select_db("edob",$conexaoMySQL);

	header('Content-Type: text/html; charset=utf-8');
	mysql_query("SET NAMES 'utf8'");
	mysql_query('SET character_set_connection=utf8');
	mysql_query('SET character_set_client=utf8');
	mysql_query('SET character_set_results=utf8');
	
	$datainicial = $_post("datainicial");
	$datafinal = $_post("datafinal");
	
    $consulta = mysql_query("SELECT p_texto.*, 
									p_texto_cat.*, 
									p_texto_mod.* 
									date_format(p_texto.data, '%d/%m/%Y') AS data
							FROM p_licitacoes
							INNER JOIN p_texto_cat ON p_texto_cat.id_categoria = p_texto.categoria_id
							INNER JOIN p_texto_mod ON p_texto_mod.id_modalidade = p_texto.modalidade_id
							WHERE p_texto.data between '$datainicial' and '$datafinal'" ) or die (mysql_error());

					
while($ln=mysql_fetch_array($consulta)){  

$id = $ln['id'];      
$data = $ln['data'];  
$modalidade = $ln['modalidade'];
$categoria = $ln['categoria'];
                          
echo $id . " - " . $categoria . " - " . $modalidade . " - " . $data . "<br>"; //lista as datas                                     

} 
?>

Como proceder nestes casos?

Obrigado pela oportunidade e desculpa se postei o tópico no lugar errado. rsrsr

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, veja se consigo resolver.

 

vc já tem todas as váriaveis do mysql, só falta obter as variáveis do form, portanto:

$datainicial = $_POST['datainicial'];
$datafinal = $_POST['datafinal'];
$modalidade_post = $_POST['modalidade'];
$categoria_post = $_POST['categoria'];

dentro do while(ultimas linhas) só colocar restrições:

if($categoria == $categoria_post) {
  //codigo
} else if($modalidade == $modalidade_post) {
  //codigo
} else if($datainicial > $data and $datafinal < $data) {
  //codigo
}

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.