Ir para o conteúdo
ivan919

Problemas com querys PHP

Mensagens Recomendadas

ivan919

Boas,

Tenho duas tabelas que estão relacionadas, artigo e a categoria, onde todos os artigos têm uma categoria.

Fiz um select para mostrar todas as categorias, bolos, bebidas, salgados etc. Queria que ao seleccionar por exemplo as bebidas aparecesse a lista dos artigos da categoria bebidas, café, sumo de laranja, leite etc.

Mas não estou a conseguir mostrar correctamente, faço o select aparece tudo mas ao escolher a categoria que pretendo mostrar, mostra todos os artigos da tabela artigos.

<!-- SELECT -->
<form method='post'>
Descrição do produto: <select name=descricao>
<?php

// COLECTA AS CATEGORIAS //
$sqla = "SELECT * FROM categoria";
$querya=mysql_query($sqla);
while($sqlc = mysql_fetch_array($querya)){
// TRANSFORMA O ARRAY EM VARIAVEIS COMUNS //
extract($sqlc);
echo('<option value="' . $descricao . '">' . $descricao . '</option>');
}
echo("</select> <input type='submit' name='submit' value='Pesquisar'><br><form></fieldset><p>");
isset($_POST['descricao']) ? $descricao = trim($_POST['descricao']) : $descricao = FALSE;
if($descricao)
{
$sql= "select * from  artigo where id_categoria= id_categoria";
$msg=mysql_query($sql);
if (mysql_num_rows($msg)>0){
// CRIA TABELA COM OS DADOS DO PRODUTO //
echo ("<form method='POST'><br>");
echo ("<center><table border width=700px; bgcolor=\"#6E8729\">");
echo ("<tr>");
echo ("<td width=\"5%\"  bgcolor=\"#C0C0C0\"><b>ID</b></td>");
echo ("<td  width=\"25%\" bgcolor=\"#C0C0C0\"><b>Nome</b></td>");
echo ("<td  width=\"25%\" bgcolor=\"#C0C0C0\"><b>Preço</b></td>");
echo ("</tr>");
// TRANSFORMA OS DADOS EM ARRAY //
while($sql = mysql_fetch_array($msg)){
$id_artigo=$sql["id_artigo"];
$nome_artigo=$sql["nome"];
$preco_artigo=$sql["preco"];
// MOSTRA DADOS //
echo ("<tr>
<td>$id_artigo</td>
<td>$nome_artigo</td>
<td>$preco_artigo €</td>
</tr>");
}
echo ("</table><br>");
}

};
?>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
malleus

Assim de repente, e perdão se estou a ler mal o código, estás:

- a povoar/criar uma combobox/select com todas as categorias (OK);

- o value de cada option do select leva a descrição (aqui provavelmente queres o ID da categoria);

- fazes o POST do formulário e recebes a descrição (com a alteração anterior receberias o ID);

- fazes uma query com id_categoria = id_categoria e tanto quanto consigo ver nenhum destes é variável...logo tens uma query com a condição where sempre verdadeira, o que de facto te vai devolver todos os artigos;

- provavelmente queres algo do tipo:

$sql= "select * from  artigo where id_categoria= $_POST['descricao']";

Nota que o que vem como POST será o ID da categoria, e não a descrição da mesma.

E não te esqueças de sanitizar o que recebes via POST/GET.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Assim de repente, e perdão se estou a ler mal o código, estás:

- a povoar/criar uma combobox/select com todas as categorias (OK);

- o value de cada option do select leva a descrição (aqui provavelmente queres o ID da categoria);

- fazes o POST do formulário e recebes a descrição (com a alteração anterior receberias o ID);

- fazes uma query com id_categoria = id_categoria e tanto quanto consigo ver nenhum destes é variável...logo tens uma query com a condição where sempre verdadeira, o que de facto te vai devolver todos os artigos;

- provavelmente queres algo do tipo:

$sql= "select * from  artigo where id_categoria= $_POST['descricao']";

Nota que o que vem como POST será o ID da categoria, e não a descrição da mesma.

E não te esqueças de sanitizar o que recebes via POST/GET.

nop

o que ele pretende é não fazer o POST ... o que pretende resolvesse com uma solução que requer algo chamado AJAX


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Ah ok, peço desculpa, não consegui/consigo depreender esse requisito a partir do post do OP.

- isto :

Queria que ao seleccionar por exemplo as bebidas aparecesse a lista dos artigos da categoria bebidas

- a amalgama de código apresentado : listagem de categorias (sem info do POST) e produtos (com info do POST)

- ter visto este tipo de pergunta vezes sem fim

leva a concluir o que pretende


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.