Переименовать статью SLUG, если она уже существует
На моем сайте статей у меня есть настройки ID & Article SLUG, но вместо идентификатора я использую slug. Слизень считается первичным уникальным!
но когда пользователь добавляет существующий слаг снова, это приводит к смерти с ошибкой mysql. Дублирующая запись для ключа 'PRIMARY'
Я изменил код, чтобы проверить перед вставкой
$qry="select * from marticles where slug='$slg'";
$res=mysql_query($qry) or die("Error in query!");
$count = mysql_num_rows($res);
if($count > 0) {
echo "Slug Already Exists! Pls change Title/Slug";
}
Теперь он показывает сообщение об ошибке пользователю перед вставкой
Но я хочу автоматически переименовать слаг вместо сообщения об ошибке, например, если предыдущий слаг является "article-on-environment", если пользователь снова вставит этот слаг, то он изменится на "article-on-environment-2" и затем next ""article- на-среду-3"так далее
Мне нужна помощь в поиске того же старого слизняка и переименования.
1 ответ
Вы можете выполнить вставку, а затем в mysql_error проверить код ошибки и, если это дублирующий код ключа, изменить слаг.
$slug='test';
$orig=$slug;
while(!$done) {
$i++;
mysql_query("insert into table set slug = '$slug'");
if(mysql_errno() == 1062) {
$slug=$orig."-$i";
} else {
$done=true;
}
}