0
Good to avoid too much processing in my Mysql when generating a report, I prefer to make a simple select and put in an array, so I have more freedom to manipulate the data.
But I came across a difficulty, where I have 3 different arrays, and I need to link the data using the field cod
and cod_produto
.
Does anyone know how I do that? Below is a very simple example of the report I’m putting together. It is functional, just put the last 2 fields, where I have to query in a different array.
OBS: The fields cod
and cod_produto
are equal and do not repeat, ie each product has its own code.
<?php
// Consulta produtos no BD
$consulta = Query($mysqli, "select cod,nome,unidade,peso from produto");
while ($resultado = mysqli_fetch_object($consulta)) {
// Array com dados dos produtos
$produtos[] = array(
"cod" => $resultado->cod,
"nome" => $resultado->nome,
"unidade" => $resultado->unidade,
"peso" => $resultado->peso
);
}
// Consulta os valores
$consulta = Query($mysqli, "select cod_produto,valor,desconto,comissao from valores_produto");
while ($resultado = mysqli_fetch_object($consulta)) {
// Array com dados dos produtos
$valores[] = array(
"cod_produto" => $resultado->cod_produto,
"valor" => $resultado->valor,
"desconto" => $resultado->desconto,
"comissao" => $resultado->comissao
);
}
// Consulta as promoções
$consulta = Query($mysqli, "select cod_produto,valor,desconto,comissao from promocoes_produto");
while ($resultado = mysqli_fetch_object($consulta)) {
// Array com dados dos produtos
$promocoes[] = array(
"cod_produto" => $resultado->cod_produto,
"valor" => $resultado->valor,
"desconto" => $resultado->desconto,
"comissao" => $resultado->comissao
);
}
// Organiza o array pelo nome
uasort($produtos, function ($a, $b) {
return strcmp($a['nome'], $b['nome']);
});
?>
<table>
<th>
<td>COD</td>
<td>NOME</td>
<td>UNIDADE</td>
<td>VALOR</td>
<td>PROMOÇÃO</td>
</th>
<?php
// Navega pelos elementos do array
foreach ($produtos as $c) {
?>
<tr>
<td><?= $c['cod'] ?></td>
<td><?= $c['nome'] ?></td>
<td><?= $c['unidade'] ?></td>
<td>aqui tenho que por o valor do array `valores`</td>
<td>aqui tenho que por o valor do array `promocoes`</td>
</tr>
<?php
}
?>
</table>
Doubt, this "cod_product" is a unique value?
– Kayo Bruno
Yes, each product has its own. This does not repeat as it is a primary key in the BD table
– Hugo Borges