Array
(
)

Concatenar resultado de dois selects

Julia
   - 09 fev 2016

Boa tarde, Estou com uma dificuldade para mostrar o resultado do select da maneira que quero. vou explicar primeiro o que tenho e depois o que quero, agradeço se alguém poder me ajudar.
Tenho duas tabelas no banco de dados:
produto_tipo: id_produto_tipo, tipo_produto e produto_marca: id_produto_marca e nome_mmarca.
Fiz o select unindo as duas tabelas para que me mostrasse o resultado das duas:
<select name="carne">
<option value="vazio"> </option>
<?php
$sql = "(select tipo_produto from produto_tipo) union (select nome_marca from produto_marca)";
$result = mysqli_query($conexao, $sql);
while($linha = mysqli_fetch_assoc($result)){
?>
<option value=" <?php echo $linha['tipo_produto'].$linha['nome_marca']; ?> ">
<?php echo utf8_decode($linha['tipo_produto'].$linha['nome_marca']); ?>
</option>
<?php } ?>
</select>
Até ai tudo bem, mas ela não está mostrando o resultado concatenado.
está mostrando assim:
arroz
tio jõao
urmado
preciso que mostre assim:
arroz tio jõao
arroz urbano
sendo que o resultado da primeira parte (arroz) vem de uma tabela e o resultado da segunda parte(tio joao) vem da segunda tabela.

Jothaz
   - 09 fev 2016

O post esta muito confuso o que dificulta a ajuda.

Vamos tentar esclarecer qual o cenário.

Hoje você tem esta duas tabelas:

produto_tipo:
--id_produto_tipo
--tipo_produto

produto_marca:
--id_produto_marca
--nome_marca

O UNION não vai resolver o seu problema, pois o escopo dele é outro.
Para conseguir o que você quer você deve remodelar seu banco de dados para poder utilizar o INNER JOIN.

Então você deve remodelar e criar uma outra tabela, assim você poderá vários tipos de várias marcas (NXN).

produto_tipo:
--id_tipo
--tipo_produto

produto_marca:
--id_marca
--nome_marca

produto_tipo_marca:
--id_tipo
--id_marca

E então utilizar o INNER JOIN:

SELECT T.TIPO_PRODUTO, M.NOME_MARCA
FROM PRODUTO_TIPO T
INNER JOIN PRODUTO_TIPO_MARCA TM ON TM.TIPO = T.TIPO
INNER JOIN PRODUTO_MARCA M ON M.ID_MARCA = TM.ID_MARCA