noussh -
It is possible to do this without a database, but not necessarily desireable. You'd have to write code that simulates the functionality of a database, so why not just go ahead and use one of the excellent database applications that are already written, such as MySQL? Almost every webhost that supports PHP also supports MySQL.
Are you new to programming in general, or just to PHP in particular? While this is not a terribly complex application, it might be a little advanced if you're completely new to programming.
As bogu suggests, you could store your data in a text file rather than a database, but since your catalog is relatively small, and if you won't be adding or deleting items from your catalog often, here's another way that might be easier:
Create a PHP file that creates "virtual" database tables as arrays. (This assumes that you know how to work with multidimensional arrays and associative arrays.) For example, it might look like this:
<?php
$categories = array();
$categories[1] = array( "name" => "Candles" );
$categories[2] = array( "name" => "Baskets" );
$categories[3] = array( "name" => "Assault Rifles" );
$categories[4] = array( "name" => "Beanie Babies" );
$categories[5] = array( "name" => "Stationery" );
$products = array();
$products[1] = array( "name" => "Big Blue Candle", "price" => 7.99, "category" => 1, "description" => "This candle is big, and also blue." );
$products[2] = array( "name" => "Small Green Candle", "price" => 3.49, "category" => 1, "description" => "If you want a smaller, greener version of our Big Blue Candle, this is the product for you!" );
$products[3] = array( "name" => "Premium Gift Basket", "price" => 28.99, "category" => 2, "description" => "Cheese, chocolate, and potted meat, oh my!" );
$products[4] = array( "name" => "AK-47", "price" => 289.99, "category" => 3, "description" => "The only choice for the discriminating warlord." );
// etc.
?>
Then, include this file at the top of every page where you'll need to access this data. For example, if your file was named data.php, you'd use this line to include it on another page:
require_once( "data.php" );
You can then use PHP's array functions to sort and display this information as necessary; a small library of custom functions would make this easier.
Whenever you need to update the catalog, you'd just edit data.php.