Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Select Dinamico

17-07-2009 12:52

Minha duvida eh a seguinte, como eu faço uma consulta no banco de acordo com item selecionado no Select e se ninguem selecionar nada puxar todos os dados, segue o codigo abaixo:

<form action="" method="get"> <select name="cp_tipo"> <option value="0">Escolha um Tipo de Not&iacute;cia</option> <?php $sql = "SELECT cp_tipo FROM tb_noticias ORDER BY cp_tipo ASC"; $qr = mysql_query($sql) or die(mysql_error()); while($ln = mysql_fetch_assoc($qr)){ echo '<option value="'.$ln['id'].'">'.$ln['cp_tipo'].'</option>'; } ?> </select> </form> <?php $tipo = $_GET['cp_tipo']; $seleciona = mysql_query("select * from tb_noticias where cp_tipo='$tipo' order by cp_data desc limit 30") or die (mysql_error());;   while ($dados = mysql_fetch_array($seleciona)) { $id = $dados['id']; $tipo = $dados['cp_tipo']; $var = $dados['cp_data']; $var = explode(" ",$var); $dia = $var[0]; $hora = $var[1]; $dia = explode("-",$dia); $data = "$dia[2].$dia[1].$dia[0]"; $tit = $dados['cp_tit']; echo"<a href=\"mostra_news.php?id={$id}\"> <span class=\"color_date\">$data | $hora - $tipo</span><br /> <span class=\"tit_not_tit\">$tit</span><br /> </a> "; } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17547
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Select Dinamico

17-07-2009 14:07

MOVIDO: de PHP para MySQL

Qual problema está tendo em conseguir?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Select Dinamico

17-07-2009 15:35

O problema é que não estou conseguindo fazer a consulta pelo select, tipo nao acontece nada, e outra coisa que eu quero é quando entrar na pagina, aparece todos as noticias e se o usuario quiser, separar por tipo, com o select
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17547
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Select Dinamico

17-07-2009 15:45

Seu option ai está mostrando os dados?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Select Dinamico

17-07-2009 15:59

Sim, a consulta do option esta funcionando e mostrando os dados.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17547
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Select Dinamico

17-07-2009 16:04

Primeiro cria um if para ser executado quando vier dados por GET

if($_GET) { // roda isso aqui } 

Sua linha tem um erro

 $seleciona = mysql_query("select * from tb_noticias where cp_tipo='$tipo' order by cp_data desc limit 30") or die (mysql_error());; 

Executa essa query da mesma forma da query do select

Também não precisa definir uma variável para cada valor dentro do while

ERRADO

    $id = $dados['id'];     $tipo = $dados['cp_tipo'];     $var = $dados['cp_data']; .. 

CERTO

extract($dados); 

Ai voce usa o $id, $tipo, .. direto
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Select Dinamico

17-07-2009 16:36

Blz, o extract vai me ajudar muito em outras paginas, eu tinha quase certeza, que não precisa ficar declarando toda hora as variaveis. Mas o select nao funcionou, segue o codigo abaixo:

<form action="<?= $_SERVER['PHP_SELF']?>" method="get">    <select name="cp_tipo">        <option value="0">Escolha um Tipo de Not&iacute;cia</option>         <?php          $sql = "SELECT cp_tipo FROM tb_noticias ORDER BY cp_tipo ASC";          $qr = mysql_query($sql) or die(mysql_error());          while($ln = mysql_fetch_assoc($qr)){             echo '<option value="'.$ln['id'].'">'.$ln['cp_tipo'].'</option>';          }       ?>     </select> </form> <br /> <?php if($_GET['cp_tipo']){   $seleciona = mysql_query("select * from tb_noticias where cp_tipo='$cp_tipo' order by cp_data desc limit 30") or die (mysql_error()); while ($dados = mysql_fetch_array($seleciona)) { extract($dados); $cp_data = explode(" ",$cp_data); $dia = $cp_data[0]; $hora = $cp_data[1]; $dia = explode("-",$dia); $data = "$dia[2].$dia[1].$dia[0]"; echo "<a href=\"mostra_news.php?id={$id}\"> <span class=\"color_date\">$data | $hora - $tipo</span><br /> <span class=\"tit_not_tit\">$tit</span><br /> </a> "; } } else { $seleciona = mysql_query("select * from tb_noticias order by cp_data desc limit 30") or die (mysql_error()); while ($dados = mysql_fetch_array($seleciona)) { extract($dados); $cp_data = explode(" ",$cp_data); $dia = $cp_data[0]; $hora = $cp_data[1]; $dia = explode("-",$dia); $data = "$dia[2].$dia[1].$dia[0]"; echo "<a href=\"mostra_news.php?id={$id}\"> <span class=\"color_date\">$data | $hora - $cp_tipo</span><br /> <span class=\"tit_not_tit\">$cp_tit</span><br /> </a> "; } } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17547
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Select Dinamico

17-07-2009 16:51

if($_GET['cp_tipo']){
$seleciona = mysql_query("select * from tb_noticias where cp_tipo='$cp_tipo' order by cp_data desc limit 30") or die (mysql_error());

Você não extraiu os valores
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Select Dinamico

17-07-2009 16:59

Esta igual eu coloquei, mas acho que esta faltando alguma ação no select, pois nao acontece nada, nem erro, a pagina não mexe.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17547
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Select Dinamico

17-07-2009 17:03

Agora que ví, seu código não tem o submit, assim não vai enviar mesmo :plus
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Select Dinamico

17-07-2009 17:04

Não tem como deixar o select automatico, eu ja via em varios sites
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17547
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Select Dinamico

17-07-2009 17:20

Tem, você dá um nome ao form

<form name="form"..

Ai no select vai o seguinte:

onchange="document.form.submit()"

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Select Dinamico

22-07-2009 10:29

Vlw Web, deixei dessa forma, só uma duvida, para voltar a selecionar todas eu deixa value vazio, tem outra forma melhor para isso.

<form action="<?= $_SERVER['PHP_SELF']?>" method="GET" name="form">    <select name="cp_tipo" onchange="document.form.submit()">        <option value="0">Escolha um Tipo de Not&iacute;cia</option>        <option value="">Todas</option>         <?php          $sql = "SELECT cp_tipo FROM tb_noticias ORDER BY cp_tipo ASC";          $qr = mysql_query($sql) or die(mysql_error());          while($ln = mysql_fetch_assoc($qr)){             echo '<option value="'.$ln['cp_tipo'].'">'.$ln['cp_tipo'].'</option>';          }       ?>     </select> </form> <?php $tipo = $_GET['cp_tipo']; if($tipo){   $seleciona = mysql_query("select * from tb_noticias where cp_tipo='$tipo' order by cp_data desc limit 30") or die (mysql_error()); while($dados = mysql_fetch_array($seleciona)) { extract($dados); $cp_data = explode(" ",$cp_data); $dia = $cp_data[0]; $hora = $cp_data[1]; $dia = explode("-",$dia); $data = "$dia[2].$dia[1].$dia[0]"; echo "<a href=\"mostra_news.php?id={$id}\">       <span class=\"color_date\">$data | $hora - $tipo</span><br />       <span class=\"tit_not_tit\">$cp_tit</span><br />       </a> "; } } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17547
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Select Dinamico

22-07-2009 10:58

Você diz consultar sem o filtro? Se sim você pode colocar um if, onde se não vier valor faz um select, se vier usa o valor do select para a consulta.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Select Dinamico

22-07-2009 21:29

Fiz o if dessa forma, mas na barra de endereço esta aparecendo assim mostra_news.php?cp_tipo=, é isso mesmo.

if($tipo ==""){ $seleciona = mysql_query("select * from tb_noticias order by cp_data desc limit 30") or die (mysql_error()); }else{ $seleciona = mysql_query("select * from tb_noticias where cp_tipo='$tipo' order by cp_data desc limit 30") or die (mysql_error()); } 

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17547
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Select Dinamico

22-07-2009 21:53

Se você está usando o método GET para envio, e tem um campo vazio com o name cp_tipo está certo.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Select Dinamico

24-07-2009 10:27

Então blz, vlw
0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado