如果表中已经存在slug,如何在slug后面添加数字(如.php-slug-1)



如果数据库中已经存在相同的段塞,如何添加编号

<?php 
if ($title == "" || $cat == "" || $body == "" || $author == "" ) {
echo "<span class='error'>Field must not be empty !! </span>";
} else{

$query = "INSERT INTO tbl_post( title, slug, cat, body, tags, author,viewname, userid, userrole) VALUES( '$title', '$slug', '$cat', '$body', '$tags', '$author', '$viewname', '$userid', '$userrole' )";
$inserted_rows = $db->insert($query);
if ($inserted_rows) {
echo "<span class='success'>Post Inserted Successfully.
</span>";
}else {
echo "<span class='error'>Post Not Inserted !</span>";
}
}
}
?>

请帮我解决一下我的问题。我是新学习php

为什么不在数据库中使title唯一,然后根据标题创建段塞,如下所示:

function slugify ($title){
return strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $title), '-'));
}
$slug = slugify($title);

该函数所做的基本上是将每个大写字母替换为小写字母,并删除非法字符。例如,CCD_ 2变为CCD_ 3。

由于多个标题具有相同名称的可能性很低,并且在数据库列上具有唯一属性,因此很可能不会出现任何重复的slug。

在我看来,这也是一个比hello-worldhello-world-1hello-world-2等更清洁的解决方案。

请参阅此处如何使列在数据库中唯一

最新更新