Ir para conteúdo

POWERED BY:

Arquivado

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

hlegius

explicando ao PHP

Recommended Posts

Pessoal seguinte,

 

Tenho uma tabela do MySQL chamada monte e possui a estrutura:

 

id, nome, categoria ...

 

daí preciso fazer algo assim:

 

colocar os valores dessa tabela em select's do HTML assim:

 

<select name="categoria" id="categoria"> <option value="valor_da_base">nome do item</option></select>
Até aki isso funciona assim:

 

PHP [/tr][tr]<?

require "../config.php";

$mysql_query = mysql_query("SELECT * FROM monte");

if(mysql_num_rows($mysql_query) > 0 ){

while($produ = mysql_fetch_array($mysql_query)){

$ctg = $produ['categoria'];

print '<select name="array['.$i.]" id="array['.$i.]"> <option value="'.$produ['valor'].'">'.$produ['nome'].'</option></select>

'

;

 

}

}

?>

[/tr]

 

bacana! só que se houver dois itens na mesma categoria tipo Bife de 2º e Bife de 1º ele não precisa criar outra, é só colocar dentro da select que já existe, só que não estou consiguindo faze-la!

alguém pode me dar uma força?

 

 

até... :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem q separar as categorias... crie uma array com as categorias possiveis, e faz um loop pra pesquisar no DB para cada categoria e dos itens de cada categoria, gerar o select... esse é um meio..outro seria.. armazena tudo numa array. cada valor, e com isso você trabalha com as arrays, filtrando e associando seus valores...a mais simples é a primeira.. mas n sei ate q ponto ela é vantajosa.. pois pode sobrecarregar o DB.. n sei.. essa parte de benchmark e tals.. nao eh minha area..

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi muito bem, mas acho que você quer filtrar dados duplicados.

 

é isso?

 

você poderia fazer isso:

 

SELECT DISTINCT id,nome,categoria FROM monte

em negrito a instrução que diz ao mysql para não retornar dados repetidos

 

vÊ aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi muito bem, mas acho que você quer filtrar dados duplicados.

 

é isso?

 

você poderia fazer isso:

 

SELECT DISTINCT id,nome,categoria FROM monte

em negrito a instrução que diz ao mysql para não retornar dados repetidos

 

vÊ aí.

Essa foi uma das primeiras coisas que pensei, mas não me serve, pois eu não posso descartar os valores repetitos, e sim, junta-los num select só!

 

e keitaro

 

vou fazer o que você me falou!

depois posto aki novamente...

 

obrigado pelas respostas!

 

 

até... :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

bacana! só que se houver dois itens na mesma categoria tipo Bife de 2º e Bife de 1º ele não precisa criar outra, é só colocar dentro da select...

Entao na verdade você ta fazendo um select com as categorias e depois com seus itens ? eh isso ?se for isso, você faz SELECT id FROM CATEGORIA... e um laço... depois SELECT * FROM monte WHERE categoria = id_do_primeiro_select_q_eh_categoriaPartindo do principio que o item tem q estar em uma categoria (NOT NULL)...era isso ?
Tipo, vou tentar ser mais objetivo:Eu tenho um banco de dados chamado produtosNele têm algumas tabelas, mas em questão agora é apenas uma:Monte
id auto_incrementnome.......categoria
Agora, eu preciso fazer algo +/- assim:Faço uma busca pelos resultados dos produtos da tabela Monte;eles serão jogados dentro de select's +/- assim:
<select name="array['.$categoria.']" id="array['.$categoria.']"> <option value="'.$produ['valor'].'">'.$produ['nome'].'</option></select>
até aí beleza, certo? Pois é só listar os valores de dar um loop...Só que suponhemos que haja 3 produtos na tabela sendo que:Produtos armazenados na tabela:id -->1nome -> Rosquinhas de chocolateCategoria -> Guloseimasid -->2nome-> Pneu Roda-vivaCategoria-> Autosid-->3nome-> Fusca bala Ano 66Categoria-> Autosconcorda comigo que desse forma serão criados três select's?Mas, para que criar três sendo que dois deles serão o mesmo nome?Pois dois deles são da categoria --> Autos
<select name="array[Autos]" id="array[Autos]"></select>
Então bastaria ele colocar o <option> no Segundo:
<option value="'.$produ['valor'].'">'.$produ['nome'].'</option>
e no primeiro:
<select name="array[Autos]" id="array[Autos]"> <option value="'.$produ['valor'].'">'.$produ['nome'].'</option></select>
e no ultimo:
</select>
deu para entender?Resumindo: juntar no mesmo select produtos de mesma categoria, sendo que no primeiro abra o select da categoria, os do meio só adiciona o <option> e o ultimo fecha o select com </select>ficou mais facil agora?obrigado pela ajuda pessoal!até... :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

a idéia do Keitaro ta certa...Da um select distinct pra pegar todas as categorias, joga num array, da um foreach e dentro dele da um select nesta categoria... :wacko:

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.