Well to avoid too much processing in my Mysql when generating a report, I'd rather do a simple select and put it 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 bind the data using the cod
and cod_produto
field.
Does anyone know how I can do this? The following is a very simple example of the report I am putting together. It's functional, just missing the last 2 fields, where I have to query in a different array.
NOTE: The fields cod
and cod_produto
are equal and do not repeat, ie each product has its 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>