Olá galera, estou no luta aqui com um cardapio, bom vamos direto ao ponto, preciso de array onde ele consulte la no meu banco de dados os itens desse cardapio, por exemplo no meu banco de dados tenho as tabelas
CATEGORIAS
->ID=1 ===> Categoria ==> Pizzas
->ID=2 ===> Categorias ==> Bebidas
->ID=3 ===> Categorias ==> Doces
->ID=4 ===> Categorias ==> Combo
ITENS_CATEGORIA
ID_CATEGORIA 1 - Pizza Calabresa
ID_CATEGORIA 1 - Pizzas 4 Queijos
ID_CATEGORIA 1 - Pizzas Bacon
ID_CATEGORIA 1 - Pizzas Franco
ID_CATEGORIA 2 - Breja lata
ID_CATEGORIA 2 - Breja Garrafa
ID_CATEGORIA 2 - Coca Mini
e por ai vai entenderam
Manualmente falando consegui fazer isso
$food = array(
‘Pizzas’=>
array(‘Calabresa’,‘4 queijos’,‘Bacon’,‘Frango’,‘Catupiry’),
‘Bebidas’=>
array(‘Coca Lata’,‘Breja’,‘Cerveja Lata’,‘Tubaina’),
‘Combo’=>
array(‘1 Pizza + Refri 2Litros’,‘1 lanche + 1 coca mini’)
);
Só que como consigo fazer isso acima, porem buscadno esses dados dinamicamente lá no meu banco de dados?
como monto esse ARRAY
Olá @Helton_Reinaldo
Você precisa fazer uma busca no banco dos itens do cardarpio e retornar na página, correto?
Tem uma série de detalhes, mas vou tentar dar uma resumida e simplificar. A primeira coisa é que você vai ter que montar uma query pra fazer essa consulta:
<?php
//Arquivo de conexão com Banco de Dados
include ('/functions/con_bd.php');
$requisicao = $_POST['buscar_cardapio'];
$consulta = mysqli_query ("$con,"SELECT * FROM Cardapio ORDER BY id BY ASC");
?>
Depois você só tem que mostrar isso na página
<?php
if (mysqli_num_rows ($consulta) > 0) {
while($linha = mysqli_fetch_array ($consulta) ) {
$codigo = $linha['codigo_cliente'];
$item = $linha['nome'];
echo "<tr>";
echo "<td>".$codigo."</td>";
echo "<td>".$nome."</td>";
echo "</tr>";
}
}
?>
É um exemplo bem simples, a partir disso você tem que ver e adaptar as suas necessidades.
Sabe usar JOIN e LIKE em SQL?
SELECT * FROM CATEGORIAS AS c
INNER JOIN ITENS_CATEGORIAS AS ic ON ic.ID_CATEGORIA = c.ID
WHERE ic.ITEM LIKE '%Pizza %' AND ic.ITEM LIKE '%Breja%' AND ic.ITEM LIKE '%Coca%';
Coloquei o nome ITEM para especificar uma coluna na tabela ITENS_CATEGORIAS, renomeie conforme sua necessidade… vai brincando usando outros textos dentro do %% (e pesquise a respeito desse comando)… boa sorte!
Agora entendi o que vc quer, pensei que o array seria o filtro e não o retorno… nesse caso tente…
$food = []; # o mesmo que $food = array(); no php >=5.4
while($row = $result->fetch_array()) {
$food[][$row['categoria']][] = $row['item'];
}
echo '<pre>';
print_r($food);
echo '</pre>';
A ideia é ele imprimir “em pé” assim vc terá uma melhor visão da matriz…
Dentro do while outra forma (para melhor leitura) seria:
$cat = $row['categoria'];
$food[][$cat][] = $row['item'];
o php tem uma forte estrutura de arrays, sendo facil montar matriz de infinitas dimensões dinamicamente se precisar usar números nos colchetes vazios…
Se ele criar muitas dimensões desnecessárias, você ainda pode “encurtar” a primeira dimensão assim:
$food[$cat][] = $row['item'];
Vai brincando e usando print_r ou var_dump na matriz para ver o resultado, boa sorte!
huuuuumm +/-
mais estou quebrando a cabeça pra algo assim
Array
(
[Pizzas] => Array
(
[0] => Calabresa
[1] => Bacon
[2] => Frango
[3] => Azeitona
)
[Bebidas] => Array
(
[0] => Breja
[1] => Breja Lata
[2] => Dolly
[3] => Dolly Lata
)
[Doces] => Array
(
[0] => Doce de Leite
[1] => Pudim
[2] => Pave
[3] => Brigadeiro
)
)