Ir para conteúdo

POWERED BY:

Arquivado

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

Douglas Fernandess

[Resolvido] Select tudo com condicoes

Recommended Posts

Opa galera tenho essa condição abaixo, quero fazer se a opção não fosse nem a 1 e nem a 2 ele trouxesse todos resultados (*), porém não é daquele jeito que eu achava, alguém sabe como seria?

 

$a = $_GET['a'];

 

if($a=="1"){

$area = produtos;

}elseif($a=="2"){

$area = esporte;

}else{

$area = '*';

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria assim, por padrão queria que filtrasse tudo sabe

 

<?php function up_homePosts(){

$primeiro_registro = 0;
$i = $_GET['i'];

if($i=="A"){
$total = 25;
}elseif($i=="B"){
$total = 50;
}elseif($i=="C"){
$total = 100;
}else{
$total = 10;
}

$a = $_GET['a'];

if($a=="1"){
$area = bares-e-restaurantes;
}elseif($a=="2"){
$area = cursos;
}elseif($a=="3"){
$area = entretenimento;
}elseif($a=="4"){
$area = esporte;
}elseif($a=="5"){
$area = produtos;
}elseif($a=="6"){
$area = saude-e-beleza;
}elseif($a=="7"){
$area = turismo;
}elseif($a=="8"){
$area = outros-servicos;
}else{
$area = // tudo;
}


include"Connections/config.php";




$dataVal = date('Y-m-d H:m:s');
$sql = 'SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = "'.$area.'" ORDER BY anuncioId DESC LIMIT '.$primeiro_registro.','.$total.'';
try{
	$query = $conecta->prepare($sql);
	$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
	$query->execute();

	$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

	}catch(PDOexception $error_imovels){
	  echo 'Erro ao selecionar os imoves!'; 	
	}

	foreach($resultado as $res){
		$anuncioID  = $res['anuncioId'];
		$titulo     = $res['anuncioTitulo'];
		$preco1     = $res['anuncioPreco1'];
		$preco2     = $res['anuncioPreco2'];
		$desconto     = $res['anuncioDesconto'];
		$link     = $res['anuncioLink'];
		$area     = $res['anuncioArea'];
		$cliente     = $res['clienteId'];
		$thumb      = $res['anuncioThumb'];


	 echo '<div id="anuncios_destaque">';

	 echo '<a href="'.$link.'" target="_blank"><img src="timthumb.php?src=midias/'.$thumb.'&h=150&w=200&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a>';
	 echo '<h2><div id="titulo"><a href="'.$link.'" target="_blank">'.strip_tags(trim(str_truncate($titulo, 50, $rep))).'</a>...</div></h2>';
	 echo '<div id="preco">De R$ '.$preco1.' Por R$ <strong>'.$preco2.'</strong></div>'; 
	 echo '<div id="desconto">Desconto de <strong>'.$desconto.'%</strong></div>';
	 echo '<div id="categoria"><strong>Em</strong>:'.$area.'</div>';
	 echo '<div id="empresa"><a href="'.$link.'" target="_blank"></a><strong>Cliente ID</strong> '.$cliente.'</div><BR>'; 

        echo '</div>';


	}

}?>


</div><!--FIM_ANUNCIOS DESTAQUE-->


</div><!--FIM_ESPAC_ANUNCIOO-->

</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então meu amigo o que falei serve e é um script mais rápido.

 

switch($_GET['a']){
  case 'bares-e-restaurantes':
  $sql = <<<SQL
   SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = 'bares-e-restaurantes' ORDER BY anuncioId DESC LIMIT
SQL;
  break;
  default:
  $sql = <<<SQL
   SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = 'bares-e-restaurantes' anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = 'cursos' ORDER BY anuncioId DESC LIMIT
SQL;
  break;
}

 

o código diz que por padrão o sql vai pegar tudo no caso você iria terminar de colocar as condições.

 

mais se for igual a um especifico ele vai ignorar o que tem todas e executar apenas onde o $a = string

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom te entendi agora, naquela linha $area = // tudo;

eu coloquei só pra te mostrar, tem algum comando com condições sendo IF ou SWITCH que pega tudo, além das especificadas sendo como default?

 

não onde saiba ai no default você tem que especificar todos como eu fiz na sql.

 

como padrão vão ter a consulta com todas as categorias, mais caso a variavel tiver um valor equivalente aquela categoria ele se limita a buscar somente por ela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu li sua sql.

 

o código que postei é o seguinte o default ele cria uma variavel sua consulta.

 

o default nesse caso vai ser a mesma coisa do que um else se nenhuma das opções servir ele vai rodar o default que faz a consulta a tudo, talvez não teria a necessidade de fazer as condições que fiz ai você faz apena

 

SELECT * FROM suaTabela

 

isso definido no default com todas as condições gerando cada sql.

 

ai esse sql seu

 

     $sql = 'SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = "'.$area.'" ORDER BY anuncioId DESC LIMIT '.$primeiro_registro.','.$total.'';

 

você apaga;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procure postar seu erro e se o erro indicar a linha poste o código que esta errado.

 

eu já usei uma estrutura parecido com essa e pelo que parece para o mesmo propósito e funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

erro

 

Erro ao selecionar os anuncios!

Warning: Invalid argument supplied for foreach() in C:\wamp\www\guiamart\funcoes.php on line 75

 


<?php function up_homePosts(){

$primeiro_registro = 0;
$i = $_GET['i'];

if($i=="A"){
$total = 25;
}elseif($i=="B"){
$total = 50;
}elseif($i=="C"){
$total = 100;
}else{
$total = 10;
}

/*?>
$a = $_GET['a'];

if($a=="1"){
$area = bares-e-restaurantes;
}elseif($a=="2"){
$area = cursos;
}elseif($a=="3"){
$area = entretenimento;
}elseif($a=="4"){
$area = esporte;
}elseif($a=="5"){
$area = produtos;
}elseif($a=="6"){
$area = saude-e-beleza;
}elseif($a=="7"){
$area = turismo;
}elseif($a=="8"){
$area = outros-servicos;
}else{
$area = produtos;
}

$e = $_GET['e'];

$c = $_GET['c'];

<?php */

include"Connections/config.php";


$dataVal = date('Y-m-d H:m:s');

switch($_GET['a']){
  case 'bares-e-restaurantes':
  $sql = <<<SQL
   SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = 'bares-e-restaurantes' ORDER BY anuncioId DESC LIMIT
SQL;
  break;
  default:
  $sql = <<<SQL
   SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = 'cursos' ORDER BY anuncioId DESC LIMIT
SQL;
  break;
}

/*?>	$sql = 'SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas"  ORDER BY anuncioId DESC LIMIT '.$primeiro_registro.','.$total.''; <?php */
try{
	$query = $conecta->prepare($sql);
	$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
	$query->execute();

	$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

	}catch(PDOexception $error_imovels){
	  echo 'Erro ao selecionar os anuncios!'; 	
	}

	foreach($resultado as $res){
		$anuncioID  = $res['anuncioId'];
		$titulo     = $res['anuncioTitulo'];
		$preco1     = $res['anuncioPreco1'];
		$preco2     = $res['anuncioPreco2'];
		$desconto     = $res['anuncioDesconto'];
		$link     = $res['anuncioLink'];
		$area     = $res['anuncioArea'];
		$cliente     = $res['clienteId'];
		$thumb      = $res['anuncioThumb'];


	 echo '<div id="anuncios_destaque">';

	 echo '<a href="'.$link.'" target="_blank"><img src="timthumb.php?src=midias/'.$thumb.'&h=150&w=200&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a>';
	 echo '<h2><div id="titulo"><a href="'.$link.'" target="_blank">'.strip_tags(trim(str_truncate($titulo, 50, $rep))).'</a>...</div></h2>';
	 echo '<div id="preco">De R$ '.$preco1.' Por R$ <strong>'.$preco2.'</strong></div>'; 
	 echo '<div id="desconto">Desconto de <strong>'.$desconto.'%</strong></div>';
	 echo '<div id="categoria"><strong>Em</strong>:'.$area.'</div>';
	 echo '<div id="empresa"><a href="'.$link.'" target="_blank"></a><strong>Cliente ID</strong> '.$cliente.'</div><BR>'; 

        echo '</div>';


	}

}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A consulta está retornando alguma linha? Pois se o foreach a variável $resultado não é um array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou postar como seria o seu code.

 

<?php function up_homePosts(){

$primeiro_registro = 0;
$i = $_GET['i'];

if($i=="A"){
$total = 25;
}elseif($i=="B"){
$total = 50;
}elseif($i=="C"){
$total = 100;
}else{
$total = 10;
}

/*?>

$e = $_GET['e'];

$c = $_GET['c'];

<?php */

       include"Connections/config.php";


       $dataVal = date('Y-m-d H:m:s');

       switch($_GET['a']){
  case '1':
  $sql = <<<SQL
   SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = 'bares-e-restaurantes' ORDER BY anuncioId DESC LIMIT '.$primeiro_registro.','.$total.''
SQL;
  break;
case '2':
  $sql = <<<SQL
   SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = 'cursos' ORDER BY anuncioId DESC LIMIT '.$primeiro_registro.','.$total.''
SQL;
  break;
case '3':
  $sql = <<<SQL
   SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = 'entretenimento' ORDER BY anuncioId DESC LIMIT '.$primeiro_registro.','.$total.''
SQL;
  break;
case '4':
  $sql = <<<SQL
   SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = 'esporte' ORDER BY anuncioId DESC LIMIT '.$primeiro_registro.','.$total.''
SQL;
  break;
case '5':
  $sql = <<<SQL
   SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = 'produtos' ORDER BY anuncioId DESC LIMIT '.$primeiro_registro.','.$total.''
SQL;
  break;
case '6':
  $sql = <<<SQL
   SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = 'saude_e_beleza' ORDER BY anuncioId DESC LIMIT '.$primeiro_registro.','.$total.''
SQL;
  break;
case '7':
  $sql = <<<SQL
   SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = 'turismo' ORDER BY anuncioId DESC LIMIT '.$primeiro_registro.','.$total.''
SQL;
  break;
case '8':
  $sql = <<<SQL
   SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas" AND anuncioArea = 'outros-servicos' ORDER BY anuncioId DESC LIMIT '.$primeiro_registro.','.$total.''
SQL;
  break;
  default:
  $sql = <<<SQL
   SELECT * FROM anuncios WHERE anuncioTermino >= :dataVal AND anuncioCategoria = "compras-coletivas"  ORDER BY anuncioId DESC LIMIT '.$primeiro_registro.','.$total.''
SQL;
  break;
}

/*?>  
<?php */
       try{
               $query = $conecta->prepare($sql);
               $query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
               $query->execute();

               $resultado = $query->fetchAll(PDO::FETCH_ASSOC);

               }catch(PDOexception $error_imovels){
                 echo 'Erro ao selecionar os anuncios!';       
               }

               foreach($resultado as $res){
                       $anuncioID  = $res['anuncioId'];
                       $titulo     = $res['anuncioTitulo'];
                       $preco1     = $res['anuncioPreco1'];
                       $preco2     = $res['anuncioPreco2'];
                       $desconto     = $res['anuncioDesconto'];
                       $link     = $res['anuncioLink'];
                       $area     = $res['anuncioArea'];
                       $cliente     = $res['clienteId'];
                       $thumb      = $res['anuncioThumb'];


                echo '<div id="anuncios_destaque">';

                echo '<a href="'.$link.'" target="_blank"><img src="timthumb.php?src=midias/'.$thumb.'&h=150&w=200&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a>';
                echo '<h2><div id="titulo"><a href="'.$link.'" target="_blank">'.strip_tags(trim(str_truncate($titulo, 50, $rep))).'</a>...</div></h2>';
                echo '<div id="preco">De R$ '.$preco1.' Por R$ <strong>'.$preco2.'</strong></div>'; 
                echo '<div id="desconto">Desconto de <strong>'.$desconto.'%</strong></div>';
                echo '<div id="categoria"><strong>Em</strong>:'.$area.'</div>';
                echo '<div id="empresa"><a href="'.$link.'" target="_blank"></a><strong>Cliente ID</strong> '.$cliente.'</div><BR>'; 

        echo '</div>';


               }

}?>

 

Recomendo um pouco mais de estudo sobre a linguagem.

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.