Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cyberoma

Pegar valores do banco e colocar no select

Recommended Posts

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
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

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:

estrutura.jpg

 

Uploaded with ImageShack.us

 

dados do banco:

dadose.jpg

 

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

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

certo vou ler sobre isso, qualquer duvida volto.. obrigado cara!!

 

William da uma olhada agora:

 

tabela base_consulta:

baseconsultaj.jpg

 

Uploaded with ImageShack.us

 

 

tabela categorias:

categoriac.jpg

 

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.