2011-05-18 12 views
1

私は私のニュースセクションPHP/MySQL - 簡単なタグシステム - 記事タグのリンクを更新していますか?

DBのセットアップ(IMGは前のポストから借りた)私の「編集条」画面で

DB Setup something like

のための簡単なタグシステムを構築したい、今座ってそこにタグされていますユーザーは新しいタグを削除または入力することができます。すべての良い。

しかし、ページが送信され、このタグ値の配列が得られたら、それぞれが 'タグ'テーブルと照合して存在するかどうかを確認する必要があると考えています。

これを行うためのショートカット方法はありますか、それとも何らかの形でtag_id => tag_valueを渡すことは可能ですか?これまでに推奨されているjQueryライブラリのどれもそれを提供していないようです:onetwo

答えて

2

送信側のデータも常にサーバーサイドでチェックする必要があります。 MySQLを使用している場合、あなたはこれを試すことができます:上記のコードは、あなたが提出でTAG_ID年代の配列を取得を前提としてい

$sql = "SELECT a.* FROM ("; 
$first = true; 
foreach($submitted_tag_array as $v) { 
    $v = mysql_real_escape_string($v); 
    $sql .= $first 
     ? "\n\tSELECT '$v' AS tag" 
     : "\n\tUNION ALL SELECT '$v'"; 
    $first = false; 
} 

$sql .= "\n) AS a" 
    ."\nLEFT JOIN [tag] t ON t.tag_id = a.tag" 
    ."\nWHERE t.tag_id IS NULL"; 

$result = mysql_query($sql); 

if($row = mysql_fetch_assoc($result)) { 
    // We found atleast one tag that doesn't exist in the database! Do something about it! 
} 

。代わりにタグ名を取得する場合は、変更する必要があります。

."\nLEFT JOIN [tag] t ON t.tag_name = a.tag"