Lid |
|
Hallo,
Ik ben nog niet zo lang geleden begonnen met PHP en hoop dat iemand mij kan helpen. Ik wil graag in mijn html page (bijv. home.html.hp) functies toevoegen die aangemaakt zijn in het index.php bestand. De functie hieronder werkt volledig, maar output alle drie de $item variabelen (productname, brandname, rating) in 1 keer in mijn html page als ik de functie recents() toevoeg. Hierdoor kan ik aan elke afzonderlijke $item variable geen markup meer toevoegen.
Wat ik graag wil doen is voor elke $item variabele een functie aanmaken. Ik zou onderstaande code 3 keer kunnen kopieren in het index.php bestand en 3 functies kunnen maken, elke met 1 $item variabele, maar dat lijkt mij erg inefficient. Is er een manier waarop ik de code van start t/m het foreach gedeelte 1 keer schrijf en hergebruik in het maken van de 3 functies, zonder het opnieuw te kopieren?
<?php
function recents()
{
global $link;
//display products from database
$p_result = mysqli_query($link,
'SELECT brand.name AS brandname, product.name AS productname, total, votes FROM product INNER JOIN lookup ON product.id = p_id INNER JOIN brand ON brand.id = b_id');
if (!$p_result){
$error = 'Error fetching products: ' . mysqli_error($link);
include 'error.html.php';
exit();
}
while ($row = mysqli_fetch_array($p_result)){
$output[] = array ('brandname' => $row['brandname'], 'productname' => $row['productname'], 'rating' => (($row['total'])/($row['votes']))); //outputs values and also calculates total/votes = rating
}
foreach ($output as $item):
echo htmlspecialchars ($item['productname'], ENT_QUOTES, 'UTF-8');
echo htmlspecialchars ($item['brandname'], ENT_QUOTES, 'UTF-8');
echo htmlspecialchars ($item['rating'], ENT_QUOTES, 'UTF-8');
endforeach;
}
?>
|