Reputation: 715
I'm having a little problem displaying data from a database...
I have two database tables:
I would like to display data as:
Categorie 1 Name
Categorie 2 Name
Categorie 3 Name
...
My code:
function get_menu_items() {
// query database for a list of categories
$conn = db_connect();
$query = "select cat_id, cat_name from categories";
$result = @$conn->query($query);
if (!$result) {
return false;
}
$num_cats = @$result->num_rows;
if ($num_cats == 0) {
return false;
}
$result = db_result_to_array($result);
return $result;
}
function display_menu_items($menu_array) {
if (!is_array($menu_array)) {
echo "<p>No menu items currently available</p>";
return;
}
foreach ($menu_array as $row) {
echo "<section id='".$row['cat_name']."'>";
echo "<div class='group course'>";
echo "<h3>".$row['cat_name']."</h3>";
***/* Problem */***
echo "<ul>";
foreach... {
echo "<li>cat_id = #, menu_name, menu_description, menu_price</li>";
}
echo "</ul>
***/* Problem */***
echo "</div>";
echo "</section>";
}
}
Any suggestions?
Thanks.
Upvotes: 2
Views: 942
Reputation: 4045
Or even better use join and run only one query
$Recordset = 'select * from categories cat LEFT JOIN menu ON menu.cat_id = cat.cat_id';
$category = '';
foreach $record in $Recordset
{
if ($category != $record['cat_id']) {
print( cat.name );
$category = $record['cat_id'];
}
print( $record['menu_name'] ..... );
}
Upvotes: 0
Reputation: 8318
catRecordset = select * from categories
foreach cat in catRecordset
{
print( cat.name );
menuRecordset = select * from menu where menyu.cat_id = cat.cat_id
foreach( menuItem in menuRecordSet )
{
print( menuItem.whatever );
}
}
Upvotes: 2