Ir para conteúdo

POWERED BY:

Arquivado

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

Ana Riet

[Resolvido] Inserir PHP dentro da query SQL

Recommended Posts

oi, gente!

 

meu problema é o seguinte... tenho uma página 1 que passa determinados parâmetros de um formulário pra página 2. só que dependendo de quais parâmetros são passados, a query na página 2 muda.

 

na página 1 tenho um select com opções e algumas checkboxes (todos puxados do banco de dados). na página 2, consigo pegar os valores numa boa:

 

<select name="estacoes[]" style="width: 15em" size=6 multiple>
			
			<?
			
			while ($row = mysql_fetch_array($resultado))
			{
				echo "<option value=".$row["codEstacaoUsuario"]." selected>".$row["nomeEstacao"];
			}
			
			?>
			
			</select>

e

 

<?
			
			while ($row = mysql_fetch_array($resultado2))
			{
				echo "	<tr>
							<td>
								<input type='checkbox' name='status[]' value=".$row["codStatus"]." checked>".$row["descrStatus"]."
							</td>
						</tr>";					
			}
			
			?>

na página 2, consigo pegar esses valores na boa:

 

$estacoes = $_POST['estacoes'];

				for ($i=0;$i<count($estacoes);$i++)
		{
			$estacoes[$i];
		}
				
				
		$status = $_POST['status'];
				
		for ($i=0;$i<count($status);$i++)
		{
			$status[$i];
		}

o meu problema é que podem ser passadas 1 ou n estações e 1 ou n códigos de status. e minha query tem que pesquisar utilizando "OR" pra todos eles passados.

 

ou seja, algo mais ou menos assim:

 

select c.codChamado, c.descricao, a.nomeAnalista, sc.descrStatus,
eu.usuario, eu.nomeEstacao,
date_format(c.data,'%d/%m/%Y às %Hh%i') AS data
from chamado c, analista a, statusChamado sc, estacaoUsuario eu
where a.codAnalista = c.fkCodAnalista
and sc.codStatus = c.fkCodStatusChamado
and eu.codEstacaoUsuario = c.fkCodEstacaoUsuario
and (
		fkCodEstacaoUsuario = 1
	or	fkCodEstacaoUsuario = 2
   	or	fkCodEstacaoUsuario = 3
   	or	fkCodEstacaoUsuario = 4
	)
	
and (
		fkCodStatusChamado = 1
   	or 	fkCodStatusChamado = 2
	or 	fkCodStatusChamado = 3
   	or 	fkCodStatusChamado = 4
	)
	
order by c.codChamado

só que, como faço pra inserir na query os códigos que foram passados dinâmicamente delo usuário na página 1?

 

viajando muito (é difícil de explicar), eu queria que existisse uma loucura mais ou menos assim:

 

$query1 = "	select c.codChamado, c.descricao, a.nomeAnalista, sc.descrStatus,
					eu.usuario, eu.nomeEstacao,
					date_format(c.data,'%d/%m/%Y às %Hh%i') AS data
					from chamado c, analista a, statusChamado sc, estacaoUsuario eu
					where a.codAnalista = c.fkCodAnalista
					and sc.codStatus = c.fkCodStatusChamado
					and eu.codEstacaoUsuario = c.fkCodEstacaoUsuario
					and (
							fkCodEstacaoUsuario = '$estacoes[0]'" .
							
						 for ($i=1;$i<count($estacoes);$i++)
						{
							echo "OR fkCodEstacaoUsuario = '$estacoes[$i]';
						}
						
					. "   )
						
					and (
						
												  fkCodStatusChamado =  '$status[0]'" .

					   	for ($i=1;$i<count($status);$i++)
						{
							echo "OR fkCodStatusChamado = '$status[$i]';
						}
						
					. "   )
						
						
					order by c.codChamado";

eu sei que isso é um absurdo e não existe, mas deu pra entender o que eu estou querendo mais ou menos?

 

como eu posso fazer isso, alguém tem idéia? :wacko:

 

agradeço quem puder ajudar!

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.