Fórum Sou novo em php e não consigo mostrar resultado na tela #592959
04/05/2018
0
Tipo: Pizza: Mussarela Adcional: Queijo, Presunto
Ao pesquisar achei a função "GROUP_CONCAT" ao executar no phpmyadim o comando mysql esta ok mas não consigo fazer ele aparecer na tela com codigo php corretamente, pois ele imprimi so a pizza mas não mostra o adcional, ja no phpmyadmin o mysql roda certo.
codigo php que uso:
$pesquisa = mysql_query ("SELECT pizza, GROUP_CONCAT(adcional SEPARATOR ',') FROM comercio.pizza INNER JOIN comercio.adcional WHERE pizza.id_cliente = adcional.id_cliente = '1' GROUP BY pizza");
if (!$pesquisa){
print "Erro ao pesquisar no banco !!!!!";
}
while ($a = mysql_fetch_assoc($pesquisa)){
$pizza = $a['pizza'];
$adcional = $a['adcional'];
print "Pizza: $pizza - Adcional: $adcional <br>";
}
E sendo assim ele imprime:
Pizza: Mussarela Adcional:
Ou seja não imprime o adcional.
Porem se eu coloco assim:
$pesquisa = mysql_query ("SELECT pizza, adcional GROUP_CONCAT(adcional SEPARATOR ',') FROM comercio.pizza INNER JOIN comercio.adcional WHERE pizza.id_cliente = adcional.id_cliente = '1' GROUP BY pizza");
if (!$pesquisa){
print "Erro ao pesquisar no banco !!!!!";
}
while ($a = mysql_fetch_assoc($pesquisa)){
$pizza = $a['pizza'];
$adcional = $a['adcional'];
print "Pizza: $pizza - Adcional: $adcional <br>";
}
Ele imprime:
Pizza: Mussarela Adcional: queijo
Ou seja so imprime um dos adcionais.
Resumindo o meu problema e no PHP, como imprimir o resultado do Mysql.
Alguém por favor poderia me socorrer?
Marcio
Curtir tópico
+ 0Post mais votado
05/05/2018
$pesquisa = mysql_query ("SELECT pizza, GROUP_CONCAT(adcional SEPARATOR ',') FROM comercio.pizza INNER JOIN comercio.adcional WHERE pizza.id_cliente = adcional.id_cliente = '1' GROUP BY pizza");
Para:
$pesquisa = mysql_query ("SELECT pizza, GROUP_CONCAT(adcional SEPARATOR ',') as adcional FROM comercio.pizza INNER JOIN comercio.adcional WHERE pizza.id_cliente = adcional.id_cliente = '1' GROUP BY pizza");
Fabio Albuquerque
Gostei + 1
Mais Posts
04/05/2018
Marlon Gera
Primeiro, não é mais utilizado o Mysql como parâmetro de conexão com o banco, sugiro que coloque Mysqli ou PDO. (Só uma observação)
Segundo, como está a estrutura do seu banco de dados, teria como postar para uma melhor analise? Pois pelo que percebi o problema não está no PHP e sim na busca a ser feita.
Gostei + 0
05/05/2018
Fernando C
GROUP_CONCAT(adcional SEPARATOR ',') adcional2
outros exemplos:
http://www.marcelodeassis.com.br/blog/concatenando-resultados-com-o-group_concat-no-mysql/
Gostei + 0
05/05/2018
Marcio
Tambem não sei como postar foto aqui, senão postava a foto do PhpMyadmin imprimindo o resultado SQL que sai corretamente.
-- -- Estrutura da tabela `adcional` -- CREATE TABLE `adcional` ( `id` int(99) NOT NULL, `id_cliente` varchar(99) NOT NULL, `adcional` varchar(99) NOT NULL, `valor_adcional` varchar(99) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Extraindo dados da tabela `adcional` -- INSERT INTO `adcional` (`id`, `id_cliente`, `adcional`, `valor_adcional`) VALUES (1, '1', 'queijo', '3.00'), (2, '1', 'presunto', '3.00'); -- -------------------------------------------------------- -- -- Estrutura da tabela `clientes` -- CREATE TABLE `clientes` ( `id` int(99) NOT NULL, `nome` varchar(99) NOT NULL, `fone` varchar(99) NOT NULL, `end` varchar(99) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Extraindo dados da tabela `clientes` -- INSERT INTO `clientes` (`id`, `nome`, `fone`, `end`) VALUES (1, 'Marcio', '981397979', 'agua santa 131'); -- -------------------------------------------------------- -- -- Estrutura da tabela `pizza` -- CREATE TABLE `pizza` ( `id` int(99) NOT NULL, `id_cliente` varchar(99) NOT NULL, `pizza` varchar(99) NOT NULL, `valor_pizza` varchar(99) NOT NULL, `qtd_pizza` varchar(99) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Extraindo dados da tabela `pizza` -- INSERT INTO `pizza` (`id`, `id_cliente`, `pizza`, `valor_pizza`, `qtd_pizza`) VALUES (1, '1', 'calabreza', '30.00', '1');
Gostei + 0
05/05/2018
Isoftware
tenta isso:
$pesquisa = mysql_query ("SELECT pizza, adcional GROUP_CONCAT(adcional SEPARATOR ',') FROM comercio.pizza INNER JOIN comercio.adcional WHERE pizza.id_cliente = adcional.id_cliente = '1' GROUP BY pizza");
if (!$pesquisa){
print "Erro ao pesquisar no banco !!!!!";
}
while ($a = mysql_fetch_array($pesquisa)){
$pizza = $a[0];
$adcional = $a[1];
print "Pizza: $pizza - Adcional: $adcional <br>";
OBS: Não testei.
Gostei + 0
05/05/2018
Marcio
Ele imprime:
Pizza: Mussarela Adcional: queijo
Ou seja so imprime um dos adcionais.
Gostei + 0
06/05/2018
Marcio
Deu certíssimo, mais uma vez muito obrigado!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)