2012-03-17 14 views
0

私の記事のサイトにID &の記事SLUGの設定がありますが、私はIDの代わりにスラッグを使用します。スラッグはプライマリユニークとして設定されています!SLUGがすでに存在する場合は、名前を変更してください。

が、ユーザが既存のスラグを追加するときに、再び、私はそれが今にエラーメッセージを示し、インサート

$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"; 
    } 

前にチェックするために、コードを変更し、キー「PRIMARY」

用のMySQLエラー 重複エントリとダイになりユーザーが挿入する前に

しかし、エラーメッセージの代わりにスラッグの名前を自動的に変更したい 以前のスラッグが「環境上の記事」である場合 ユーザーが同じスラッグを再度挿入すると、「環境上の記事2」 &となり、次の記事「環境上の記事3」so

私は同じ古いスラグの検索に役立つと名前を変更する必要があります。

答えて

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; 
    } 
} 
+0

ありがとうたくさんの 'Lこのコードを試してください – Vehlad

関連する問題