ivan919 Posted May 14, 2013 at 10:36 AM Report #507253 Posted May 14, 2013 at 10:36 AM 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>"); } }; ?>
HappyHippyHippo Posted May 14, 2013 at 10:50 AM Report #507255 Posted May 14, 2013 at 10:50 AM este tipo de pergunta aparecem cerca de 7 vezes por semana ... https://www.portugal-a-programar.pt/topic/59840-duvida-preencher-select-automaticamente/page__hl__%2Bajax+%2Bselect IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
malleus Posted May 14, 2013 at 04:20 PM Report #507327 Posted May 14, 2013 at 04:20 PM 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.
HappyHippyHippo Posted May 14, 2013 at 04:48 PM Report #507333 Posted May 14, 2013 at 04:48 PM 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 Portugol Plus
malleus Posted May 14, 2013 at 05:38 PM Report #507346 Posted May 14, 2013 at 05:38 PM Ah ok, peço desculpa, não consegui/consigo depreender esse requisito a partir do post do OP.
HappyHippyHippo Posted May 14, 2013 at 05:50 PM Report #507350 Posted May 14, 2013 at 05:50 PM 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 Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now