Переименовать статью SLUG, если она уже существует - PullRequest
0 голосов
/ 17 марта 2012

На моем сайте статей у меня есть настройки ID & Article SLUG, но я использую slug вместо ID.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" и затем следующий "" article-on-environment-3 ", так что

Мне нужна помощь в поиске того же старого слага и переименования.

1 Ответ

1 голос
/ 17 марта 2012

Вы можете выполнить вставку, а затем в 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;
    }
}
...