Right, so what you need to do is (presumably) search your db via the article title, rather than by it's primary key. Then you can use the title in your URL.
mod_rewrite rule (example)
RewriteRule ^/(.+)$ /index.php?article=$1
index.php code (example)
if(isset($_REQUEST["article"])&&($_REQUEST["article"]<>""))
{
// replace dashes with spaces for search
$article=str_replace('-',' ',$_REQUEST["article"]);
// query the database
$sql=mysql_query("SELECT * FROM `new` WHERE `news_name`='$article' LIMIT 0,1");
if (mysql_num_rows($sql) > 0) {
// Article found
$result = mysql_fetch_array($sql);
$title_str.=$result["news_name"]." : ";
} else {
// Article not found
$title_str.="Could not find article";
}
print "<title>$title_str</title>"; // show dynamic title
}
The alternative to the (slightly messy) str_replace method is to add a column to the database with the seo-friendly url that will be used to access the article. That way, you won't have problems with other non-alphanumeric characters in titles.
If you don't do it this way, you will need to have a seperate rewrite rule for every article, which converts title to DB index.
The collation of your news_name column (or seo_friendly_url column if you add one) will need to be case insensitive, or you will need to store it in all lower or upper case, otherwise you wont be able to search it correctly when people specify urls in the wrong case.