由title创建的数据库中的双链接

时间:2011-11-13 16:56:09

标签: php mysql forms seo hyperlink

我在mydatabase中遇到双链接问题。 我有用于新帖子的php文件表单。有$ _POST ['title'] 当人们提交标题时,php会从标题创建一个新的数据库URL。问题是当用户提交已经存在于db中的标题时,因为php创建了双链接。我想编写一个检查url的函数,如果它存在,则为新帖子创建另一个链接,例如:if exists / posts / new_link函数创建另一个,例如:/ posts / new_link_1。 我有这个代码:

$link = $_GET['url'];

$checkdb = mysql_query("SELECT `url` FROM `posts` WHERE `url`='$link'" ) or die("ERROR");
$howmanypost = mysql_num_rows($checkdb); //this is check links in db

if ($howmanypost = $newlinksfromtitle) { 

// Here I would like the function that creates a new url to db

} else {

$newpost = "INSERT INTO `posts` (`id`, `title`, `img`, `tags`, `author`, `data`, `type`, `url`) VALUES ('', '$title', '$img', '$tags', '$author', '$data', 'img', '$url')";
$makepost = mysql_query($newpost);

}

抱歉我的英语不好。

1 个答案:

答案 0 :(得分:1)

如果您知道所有具有相同标题的帖子都有类似的网址,请查询:

$title = mysql_real_escape_string( $title);
$result = mysql_query("SELECT `title` FROM `posts` WHERE `title`='$title'" );
$num_same = mysql_num_rows( $result);

if( $num_same > 0) 
{
    // We know there's at least 1 post with the same title, so change the URL
    $url = $url . '_' . $num_same; // Or: ($num_same + 1)
}

$sql = "INSERT INTO `posts` (`id`, `title`, `img`, `tags`, `author`, `data`, `type`, `url`) VALUES ('', '$title', '$img', '$tags', '$author', '$data', 'img', '$url')";
$result = mysql_query( $sql);

确保您正确清理输入,以便您的字符串不受SQL注入。