Ir para conteúdo

POWERED BY:

Arquivado

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

Marcio Figueiredo

Sou novo em php e não consigo mostrar resultado na tela

Recommended Posts

tenho no banco três tabelas: cliente, pizza, adcional
quero trazer atraves do id_cliente a pizza e o adcional referente a pizza na mesma linha
ao pesquisar achei a função "GROUP_CONCAT" ao executar no phpmyadim o comando mysql esta ok
mas não consigo ele aparecer na tela com 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 qtd_pizza, 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>";
}

 

Alguem por favor poderia me dizer aonde esta o meu erro no php?

 

pizza.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Marcio Figueiredo, bem-vindo à comunidade iMasters!

 

Entendi seu problema... Mas, pense comigo, eu uso o sistema duas vezes ou mais num dia, ao fazer o select pelo meu id vai exibir os adicionais dos meus dois pedidos... Não seria mais seguro e lógico criar um sistema de busca por um registro de pedido? Exemplo: PED_CADC_24997 (É um exemplo) e através dessa chave de registro eu consigo todas as informações, seja do cliente, pedido ou adicionais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Jhess, obrigado

Tentei também, porem fiquei empacado no mesmo problema, mostrar o pedido na tela.
Se eu coloco tipo uma pizza de mussarela com adcional de queijo e presunto, adcino no banco para o caso de ter de adcionar outra pizza (com adcional ou sem), ao voltar a tela para adcionar mais não consigo mostrar o que ja foi pedido, sem falar que ponho em tabelas diferentes para poder somar depois, ja que cada pizza e adcional tem valores diferentes.

site pizza.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pretende exibir todos os registros de pizza na tabela "Pedidos em aberto"? Senão, onde pretende exibir? Você quer mostrar com um limite? Somente as abertas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao selecionar o tipo de pizza e adcional, ira salvar no banco e voltar pra mesma pagina com o pedido feito e que ainda esta em andamento.

Na tela acima colquei uma pizza de mussarela, salvo no banco e volto pra tela com valor em baixo.
Caso haja o pedido do mesmo cliente de mais uma pizza de presunto por exemplo.

Farei nessa tela acima e salvara no banco com o id do cliente e retorna pra essa tela, mostrando em baixo a pizza de mussarela e presunto que ele pediu com o valor total ate o momento.
Apos finalizar o pedido ira salvar em pedidos abertos (ainda não entregue).

O problema e que não consigo efetuar a pesquisa mysql no php para trazer a pizza e o adcional da pizza na mesma linha.
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok... recapitulando.

 

Na tabela de adicionais você terá que criar uma relação com a tabela de pizzas (pedidos), supomos que eu, no sistema, faça o cadastro de 1 pizza com 2 adicionais, será inserido na tabela pizza, as descrições e uma chave, por exemplo: CADC_0357

 

Na tabela de adicionas, vai registrar os adicionais pedidos no cadastro, e na coluna de relação com a tabela de pizzas, terá o seguinte código: CADC_0357 (mesmo código cadastrado nas duas tabelas, fazendo assim um vínculo)

 

Sendo assim você pode fazer o seguinte SQL:

 

$sql = "SELECT * FROM pizzas,adcionais WHERE pizzas.chave_relacao = adcionais.chave_relacao";

 

Note que, a chave relação porta nosso código de relação: CADC_0357, apenas isso é o necessário, relações com tabelas parece complicado, mas não é. Creio que exista formas mais fáceis para fazer isto, logo alguém mais expert ajudará rsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Jhess obrigado pela atenção.

Entendi o que você quiz dizer, porem ja havia tentado fazer o que você disse.

Ao realizar esse SQL me trara a seguinte forma caso uma pizza tenha dois adcionais:

Pizza: Mussarela adcional: queijo

Pizza: Mussarela adcional: presunto

Por isso uso : Group_Concat

Assim sendo ele me traz:

Pizza: Mussarela adcional: queijo, presunto

O problema não esta no SQL, e sim no php, pois não consigo exibir na tela.

Eu uso esse codigo PHP:

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

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.