You have quoted your table name with single quotes '. If you quote it, do so with backticks. Single quotes are only for string literals in MySQL. This results in a syntax error in your query.
$result = mysql_query("SELECT * FROM `" . $table_prefix . "users` where user_regdate = '" . $date . "'");
Next, getdate() in PHP returns an array rather than the date string, which supplies your query with the word Array when passed as a string to the query. Instead, use MySQL's native date functions to get today's date in the format MySQL expects (yyyy-mm-dd):
Edit after comments:
Since you have a unix timestamp rather than a date column, create a Unix timestamp of the date:
where user_regdate = UNIX_TIMESTAMP(GETDATE())
A little error checking on the mysql_query() call would have revealed the source of the error in the query, and indeed is necessary to prevent your script from failing fatally.
$result = mysql_query("SELECT * FROM `" . $table_prefix . "users` where user_regdate = '" . $date . "'");
if (!$result) {
// query failed
echo mysql_error();
}
else {
// all is well, proceed with fetch...
}
Finally, I note that you're collecting the number of rows into $total++. That is unnecessary (unless you are performing some more specific logic we don't see) because the value is available via mysql_num_rows($result).