Jump to content
helkton

criar array com itens adicionais de cada ITEM

Recommended Posts

galera preciso criar um array que pegue os itens adicionais de cada ITEM  escolhido...

vou tentar explicar...

tenho uma pagina com as categorias do CARDÁPIO

LANCHES - AÇAI - SALGADOS - PIZZAS

CADA categoria contem seus devidos itens tipo...

LANCHES
1-xFrango
2-xSalada
3-xBacon

AÇAI
1-Copo 300ml
2-Copo 500ml
3-Copo 700ml

até esta funcionando, cada item que o usuário escolher, salvo em uma S_SESSION['itens'] 

agora vamos supor que, esses itens tenham adicionais, já criei um <?php if(){}?> e ele já faz essa verificação, então se o item LANCHES 1=XFRANGO NÃO conter adicional para ser escolhido ele simplesmente irá ser adicionado no carrinho, AGORA se o item tiver adicional para ser escolhido, irá abrir um MODAL com os adicionais disponíveis para o ITEM

Agora digamos que o AÇAÍ) 1-COPO 300ML tenha adicional eu abro o meu modal com os seguintes adicionais:

FRUTAS
1-Morango 1,00
2-Banana 1,00
3-Uva 1,00

COMPLEMENTOS
1-Ninho 1,00
2-Coco Ralado 1,00
3-Castanha 1,00

COBERTURA
1-Chocolate 1,00
2-Leite condensado 1,00
3-Morango 1,00

ADICIONAIS
1-Nutella 1,00
2-Bis 1,00
3-KitKat 1,00 

então como pego esses adicionais e salvo em cada ITEM escolhido pelo usuário e se possivel somar esses adicionais que tenha valores também

Share this post


Link to post
Share on other sites

então no seguinte link esta assim

<?php
$cesta = array("Maça", "Morango", "Banana");
echo "<pre>";
print_r($cesta);
?>

IMPRIME A SEGUINTE ESTRUTURA....
Array
(
[0] => Maça
[1] => Morango
[2] => Banana
)

eu tenho um while PHP que me traz esses dados 

while($resultItensExtras = $conectaItensExtras->fetch_object()){
echo $itemextras = $resultItensExtras->nomeItemExtra;
}

até aqui blz imprime os devidos resuldados da pesquisa SQL

MAIS como eu salvo esses devidos resultados em para usa-los posteriormente...

JA TENTEI ASSIM

$_SESSION['dados'] = array();
while($resultItensExtras = $conectaItensExtras->fetch_object()){
$itemextras = $resultItensExtras->nomeItemExtra;
$_SESSION['dados'] = $resultItensExtras->nomeItemExtra;
}

<?php print_r ($_SESSION['dados'])?>

mais só imprime o último resultado

 

Share this post


Link to post
Share on other sites

fala galera estou quase conseguindo o que quero

consegui salvar meu resultado while em um array e pega-los depois..

<?php $dadosArray = array(); //Monto o Array
		while($resultItensExtras = $conectaItensExtras->fetch_object()){
		array_push($dadosArray,$resultItensExtras->nomeItemExtra);
}?>

//Aqui fora do while eu pego todos os itens salvos no array
<?php echo implode(",",$dadosArray)?>

isso aqui esta funfando certinho, então ele esta pegando todos os itens extras dos meus pedidos

agora mais uma coisinha, reparem la na minha pergunta na forma do meu cardapio...

FRUTAS
1-Morango 1,00
2-Banana 1,00
3-Uva 1,00

COMPLEMENTOS
1-Ninho 1,00
2-Coco Ralado 1,00
3-Castanha 1,00

COBERTURA
1-Chocolate 1,00
2-Leite condensado 1,00
3-Morango 1,00

ADICIONAIS
1-Nutella 1,00
2-Bis 1,00
3-KitKat 1,00 

como eu separo os itens extras pelas devidas categorias tipo, o cidadão escolheu como adicional

FURTAS=> Morango R$ 1.00
         Banana R$ 1.00

COBERTURA=> Leite Condensado R$1.00
            Morango R$1.00

ADICIONAIS=> kitKat 1.00

Como sair assim separadinho???

Share this post


Link to post
Share on other sites

eu fiz assim

<?php
	$dadosArray = array();
	while($resultItensExtras = $conectaItensExtras->fetch_object()){
	$tituloExtra = $resultItensExtras->tituloExtra;
	array_push($dadosArray,$tituloExtra.'->'.$resultItensExtras->nomeItemExtra.'<br>')
}?>

<?php echo implode($dadosArray)?>

só que na hora de imprimir me retorna uma categoria para cada ITEM ficando assim

Frutas->Morango
Frutas->Banana
Complementos->Ninho
Complementos->Coco ralado
Complementos->Castanha
Complementos->Granola
Cobertura->Morango
Cobertura->Leite Condensado
Adicionais->Bis
Adicionais->KitKat

 

Share this post


Link to post
Share on other sites

Você tem que adicionar um novo indice a cada entrada de itens, depois no indice de itens, os de igredientes.

 

Fiz uma lógica rápida, usando Session e ArrayPush

 

Note que:
 

add_itens(Array de Produdos, Indice do Produto);
add_extra( Indice do Produto, Adicionais e Id);
<?php

$produto = [
	'Copo 300ml',
	'Copo 500ml',
	'Copo 700ml',
];

$fruta = [
	['Morango', '1.00'],
	['Banana', '1.00'],
	['Uva', '1.00'],
];

$complementos = [
	['Ninho', '1.00'],
	['Coco Ralado', '1.00'],
	['Castanha', '1.00'],
];

$cobertura = [
	['Chocolate', '1.00'],
	['Leite condensado', '1.00'],
	['Morango', '1.00'],
];

$adicionais = [
	['Nutella', '1.00'],
	['Bis', '1.00'],
	['KitKat', '1.00'],
];

$_SESSION = [];
function add_itens($produto, $item) {
	array_push($_SESSION, ['item' => $produto[$item]]);
}

function add_extra($produto, $item) {
	array_push($_SESSION[$produto], ['ingredientes' => $item]);
}


add_itens($produto, 1);
add_extra(0, $fruta[2]);
add_extra(0, $cobertura[1]);

add_itens($produto, 2);
add_extra(1, $fruta[1]);
add_extra(1, $adicionais[1]);


print_r($_SESSION);

Saida

 

Array
(
    [0] => Array
        (
            [item] => Copo 500ml
            [0] => Array
                (
                    [ingredientes] => Array
                        (
                            [0] => Uva
                            [1] => 1.00
                        )

                )

            [1] => Array
                (
                    [ingredientes] => Array
                        (
                            [0] => Leite condensado
                            [1] => 1.00
                        )

                )

        )

    [1] => Array
        (
            [item] => Copo 700ml
            [0] => Array
                (
                    [ingredientes] => Array
                        (
                            [0] => Banana
                            [1] => 1.00
                        )

                )

            [1] => Array
                (
                    [ingredientes] => Array
                        (
                            [0] => Bis
                            [1] => 1.00
                        )

                )

        )

)

Bom trabalho!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By violin101
      Olá amigos do grupo
       
      saudações...
       
      Gostaria de tirar uma dúvida com os amigos.
       
      Estou escrevendo uma rotina usando PHP + Codeigniter e fiquei com uma dúvida.
       
      Como consigo ou devo fazer para realizar Pontuações para cada produto, ou seja, dar nota de 0 à 5 ?
       
      Gostaria de utilizar checkbox.
       
      Grato,
       
      Cesar
    • By Diego-SLP
      Boa tarde,
       
      Tenho um while retornando alguns dados do meu banco e gostaria que nessa tabela a ultima linha fosse a soma da coluna, como posso fazer isso ?
       
      Obrigado
    • By Camilavip
      Oi, faço uma consulta no banco de dados para trazer os valores como: Nome, email, telefone, cidade... e se o usuário está ativo ou não
      No campo ativo ele grava 0 se não tiver ativo e 1 se tiver ativo, mas queria que ele trouxesse se for 0 a palavra Não e se for 1 a palavra Sim
      Faço a consulta como abaixo.
      <?php $sql = "SELECT * FROM clientes"; $result = $sqli->query($sql); if ($result->num_rows) { while ($dados = $result->fetch_assoc()) { $id_cliente = $dados['id_cliente']; $cliente = $dados['cliente']; $email = $dados['email']; $ativo = $dados['ativo']; ?> E em seguida apenas chamo os dados.
      <?= $cliente; ?> <?= $email; ?> <?= $ativo; ?> Que me traz os resultados
      Ricardo
      xxxx@xxxx.com
      0 ou 1 de acordo se ele está ativo ou não. Mas aqui eu queria que ele trouxesse de acordo Não ou Sim e não 0 ou 1
    • By Marcos PP
      Tenho uma tabela onde pego todos pedidos realizados no dia, porem mostro todos em uma tabela, ate ai tudo bem, mas o cliente precisa que seja agrupado por quem pediu, vou dar um exemplo,

      Na minha tabela tenho 

      ID_PEDIDO  |  ID_USER_PEDIDO |  PEDIDO
      1                   |   20                           |   524
      5                   |   52                           |   258
      2                   |   35                           |   525
      6                   |   52                           |   253
      3                   |   20                           |   658
      4                   |   20                           |   358

      No resultado me aparece conforme consulta e me mostra todos os pedidos em ordem de pedido
      SELECT * FROM pedidos  ORDER BY ID_PEDIDO ASC
       
      Se eu colocar um GROUP BY ID_USER_PEDIDO vai agrupar os pedidos de acordo com o usuário e mo mostrar apenas 1


      Eu preciso que seja mostrado todos eles porem agrupados na mesma linha da tabela
       
      <table id="datatable1" class="table display responsive "> <thead> <tr> <th class="">ID</th> <th class="">ID do usuario</th> <th class="">Pedido</th> </tr> </thead> <tbody> <?php $sql = "SELECT * FROM pedidos  ORDER BY ID_PEDIDO ASC"; $result = $conn->query($sql); while($row = $result->fetch_assoc()) { ?> <tr> <td><?php echo $row["ID_PEDIDO"];?></td> <td><?php echo $row["ID_USER_PEDIDO"];?></td> <td><?php echo $row["PEDIDO"];?></td> </tr> <?php } ?> </tbody> </table> E que seja exibido conforme esta imagem
       

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.