Cyberoma 5 Denunciar post Postado Janeiro 20, 2012 OBS: criei esse topico pq o outro esta como resolvido. Com esse codigo ele listou todas as categorias que estão cadastradas, porem ele repete se tiver +1 categoria com o mesmo nome: O que eu quero é que selecioando uma categoria, ele liste tudo que tiver ligado a coluna categoria. (ISSO JA CONSEGUI) como posso fazer isso? <?php #chama o arquivo de configuração com o banco require 'config.php'; #seleciona os dados da tabela $query = mysql_query("SELECT id, categoria FROM base_consultas"); # e preenche o select com dados ?> <select> <option>Selecione...</option> <?php while($categoria = mysql_fetch_array($query)) { ?> <option value="<?php echo $categoria['id'] ?>"><?php echo $categoria['categoria'] ?></option> <?php } ?> </select> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 20, 2012 porem ele repete se tiver +1 categoria com o mesmo nome: então o banco está errado. você deveria normalizar o banco, e corrigir isso no cadastro de categorias. O WorkAround, seria: $query = mysql_query("SELECT id, categoria FROM base_consultas GROUP BY categoria"); Compartilhar este post Link para o post Compartilhar em outros sites
Cyberoma 5 Denunciar post Postado Janeiro 20, 2012 então o banco está errado. você deveria normalizar o banco, e corrigir isso no cadastro de categorias. O WorkAround, seria: $query = mysql_query("SELECT id, categoria FROM base_consultas GROUP BY categoria"); Isso fez com que ele mostra-se somente 1 categoria sem repetição, porem ele só mostra 1 valor relacionado a categoria. sendo que existe varios.. estrutura do banco: Uploaded with ImageShack.us dados do banco: Uploaded with ImageShack.us Por exemplo ele mostra somente 1 "teste" no select, mas quando mando pesquisar ele só mostra o "testando" codigo: <?php #chama o arquivo de configuração com o banco require 'config.php'; #seleciona os dados da tabela base_consultas $query = mysql_query("SELECT * FROM base_consultas GROUP BY categoria"); # e preenche o select com dados ?> <select name="categoria" id="categoria"> <option>Selecione...</option> <?php while($categoria = mysql_fetch_array($query)) { ?> <option value="<?php echo $categoria['id'] ?>"><?php echo $categoria['categoria'] ?></option> <?php } ?> </select></td> <td><input type="submit" name="button" id="button" value="Pesquisar" /></td> </tr> </table> </form></td> </tr> <tr> <td><?php include "config.php"; $erro_pesquisa = $_POST['erro']; $categoria_pesquisa = $_POST['categoria']; $sql = mysql_query("SELECT * FROM base_consultas WHERE id = $categoria_pesquisa "); while($linha = mysql_fetch_array($sql)){ $erro = $linha['erro']; echo $erro; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 20, 2012 isso é pq o seu banco está modelado errado amigo. você deveria ter uma tabela só para categorias, e outra com essas informações ai. Estude sobre Modelagem SQL http://wbruno.com.br/blog/2011/03/29/afinal-o-que-e-entidade/ as suas "categorias", são na verdade uma outra entidade, q está no lugar errado. Compartilhar este post Link para o post Compartilhar em outros sites
Cyberoma 5 Denunciar post Postado Janeiro 20, 2012 certo vou ler sobre isso, qualquer duvida volto.. obrigado cara!! William da uma olhada agora: tabela base_consulta: Uploaded with ImageShack.us tabela categorias: Uploaded with ImageShack.us codigo que cadastra os dados nas 2 tabelas $sql_categoria = mysql_query("INSERT INTO categorias (id_categoria, descricao) VALUES ('','categoria cadastrada')"); $sql_gravar = mysql_query("INSERT INTO base_consultas (id, categoria, erro, solucao) VALUES ('','$categoria','$erro','$solucao')"); É isso mesmo??? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 20, 2012 case isso amigo, o campo "categoria" da tabela base_consulta, deve ser do tipo INT ai você relaciona as tabelas: categoria.id_categoria = base_consulta.categoria Compartilhar este post Link para o post Compartilhar em outros sites
Cyberoma 5 Denunciar post Postado Janeiro 20, 2012 case isso amigo, o campo "categoria" da tabela base_consulta, deve ser do tipo INT ai você relaciona as tabelas: categoria.id_categoria = base_consulta.categoria Pow cara desculpa ai, mas estou totalmente confuso agora.. include "config.php"; $erro_pesquisa = $_POST['erro']; $categoria_pesquisa = $_POST['categoria']; $sql = mysql_query("SELECT base_consulta.categoria AS categoria.id_categoria FROM base_consulta"); while($linha = mysql_fetch_array($sql)){ $erro = $linha['erro']; echo $erro; } ?> O diacho do INNER JOIN fica onde?? To perdidão =/ Compartilhar este post Link para o post Compartilhar em outros sites