Sou novo em php e não consigo mostrar resultado na tela
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
Post 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
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.
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/
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');
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.
05/05/2018
Marcio
Ele imprime:
Pizza: Mussarela Adcional: queijo
Ou seja so imprime um dos adcionais.
06/05/2018
Marcio
Deu certíssimo, mais uma vez muito obrigado!!
Clique aqui para fazer login e interagir na Comunidade :)