User Authentication With patUser (part 2) - Meeting The Family (
Page 2 of 13 )
Let's
start with the basics - obtaining a list of current users from the database. If
you've been following along, you already know that right now, the database has
only a single user, "joe". Let's add a couple more:
INSERT INTO users ('uid', 'username', 'passwd') VALUES
('', 'sarah', 'sarah');
INSERT INTO users ('uid', 'username', 'passwd') VALUES ('', 'john', 'john');
You can verify the result with a quick SQL query to the "users" table:
mysql> SELECT uid, username FROM users;
+-----+----------+
| uid | username |
+-----+----------+
| 1 | joe |
| 2 | sarah |
| 3 | john |
+-----+----------+
3 rows in set (0.00 sec)
Now, let's try doing the same with patUser:
<?php
// include classes
include("../include/patDbc.php");
include("../include/patUser.php");
// initialize database layer
$db = new patMySqlDbc("localhost", "db211", "us111", "secret");
// initialize patUser
$u = new patUser(true);
// connect patUser to database
$u->setAuthDbc($db);
// set table
$u->setAuthTable("users");
// get user list
$list = $u->getUsers(array("uid", "username"));
// uncomment this to see data structure
// print_r($list);
// print as list
echo "<h2>Users</h2>";
echo "<ul>";
foreach ($list as $l)
{
echo "<li>" . $l['username'] . " (" . $l['uid'] . ")";
}
echo "</ul>";
?>
The first part of this script should be easily recognizable to you by now
- it consists of the code needed to instantiate a patUser object instance and
prepare it for use. Once the object has been prepared, the getUsers() function
is used to retrieve a list of all the users in the database. The return value of
the getUsers() method is an associative array containing user records, one
element for each record.
The first argument to the getUsers() function
is an array containing the names of the fields to be included in the result set
- these field names appear as keys in the returned array, and can be used to
access the corresponding values. Here's the output:

You're
not restricted to using just the default fields built into the patUser database
schema - you can just as easily add your own. Find out how, on the next
page.