Be sure to escape $_POST['project'] before actually using this script (http://php.net/manual/en/function.mysql-real-escape-string.php).
What exactly goes wrong in your script? Does it echo "Project not found"? In that case, a row was not found. You should be using LIMIT 1 since you're doing one redirect. And you should use die; after header to stop code processing. I don't recommend using * to select everything. Just select what you need.
<?php
include("project_admin/includes/config.php");
$db = new Database($db_host, $db_username, $db_password, $db_database, $db_table_prefix);
$db -> connect();
if ($_POST['findproject']{
$q = $db->mysql_query("SELECT * FROM projects WHERE project LIKE '" . mysql_real_escape_string($_POST['project']) . "' LIMIT 1");
if (!$q){
echo "Project Not Found";
}else{
header('Location:' . $r['url']);
die;
}
?>
Use die($_POST['project']); at the top of the script to make sure its value is correct.