views:

77

answers:

2

Hi, I'm looking for some help understanding how to generate pages from a database to create a catalog of items, each with different URLs. All I can seem to find through google are products that will do this for me, or full e-commerce solutions. I don't want a shopping cart! Just an inventory.

Also, perhaps someone could recommend their favorite/the best simple login solution.

Thank you so much for your time and any help, suggestions, comments, solutions.

A: 

There's a lot of tools out there for generating a web interface around a data model. I find Django pretty easy to use. Based on its popularity, I'm sure that Ruby on Rails is another viable option.

Jacob
+1  A: 

I just posted a thorough solution to another question that is very closely-related to this question. I'll re-post it here for your convenience:


I would suggest using some of the MVC (Model, View, Controller) frameworks out there like KohanaPHP. It is essentially this. You're working in a strictly Object-Oriented environment. A simple page in Kohana, build entirely from a class would look like this:

class Home_Controller extends Controller
{
  public function index()
  {
    echo "Hello World";
  }
}

You would then access that page by visiting youur url, the class name, and the method name:

http://www.mysite.com/home/ (index() can be called after home/, but it's implicit)

When you start wanting to bring in database-activity, you'll start working with another Class called a Model. This will contain methods to interact with your database, like the following:

class Users_Model extends Model
{
  public function count_users()
  {
    return $this->db->count_records('users');
  }
}

Note here that I didn't write my own query. Kohana comes with an intuitive Query Builder.

That method would be called from within your Controller, the first class that we mentioned at the beginning of this solution. That would look like this:

class Home_Controller extends Controller
{
  public function index()
  {
    $usersModel = new Users_Model;
    $userCount = $usersModel->count_users();

    echo "We have " . $userCount . " users!";
  }
}

Eventually, you'll want more complicated layouts, which will involve HTML/CSS/Javascript. At this point, you would introduce the "Views," which are just presentation layers. Rather than calling echo or print from within the Controller, you would load up a view (an HTML page, essentially) and pass it some variables:

class Home_Controller extends Controller
{
  public function index()
  {
    $myView = new View("index");
    $usersModel = new Users_Model;
    $userCount = $usersModel->count_users();

    $myView->userCount = $userCount;
    $myView->render(TRUE);
  }
}

Which would load the following "View"

<p>We have <?php print $userCount; ?> users!</p>

That should be enough to get you started. Using the MVC-style is really clean, and very fun to work with.

Jonathan Sampson