Jump to content
Sign in to follow this  
ivan919

Problemas com querys PHP

Recommended Posts

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>");
}

};
?>

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
malleus

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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.