sql >> データベース >  >> RDS >> Mysql

PHP/MySQL-複数のタグを追加する方法

    explode() を使用できます

    カンマで区切られたタグの配列を取得するには

    $tag_string = "t1, t2, t3";
    $tags = explode(",", $tag_string );
    echo $tags[0]; // t1
    echo $tags[1]; // t2
    

    次に、配列をループしてデータベースに挿入できます

    クエリの作成にUNIQUEを含めることもできます。

    CREATE TABLE tags (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    tag VARCHAR(255) NOT NULL,
    PRIMARY KEY (id),
    UNIQUE(`tag`)
    );
    

    このようにして、同じ名前の2つのタグを作成することはできません。 の詳細については、こちらをご覧ください。ユニーク 構文

    xDをテストせずにコーディングします

    //Assuming you have already added the question and the mysql_insert_Id() == 1
    //where mysql_insert_Id() is the last id added to the question table
    
    if (isset($_POST['tags'])){
        $tags = explode(",", $_POST['tags']);
    
        for ($x = 0; $x < count($tags); $x++){
    
            //Due to unique it will only insert if the tag dosent already exist
            mysql_query("INSERT INTO tag VALUES(NULL, {$tags[x]})");
    
            //Add the relational Link
            mysql_query("INSERT INTO question_tag VALUES(NULL, (SELECT tags.Id FROM tags WHERE tags.tag = {$tags[x]}), 1)");
        }
    }
    


    1. CURRENT_DATEの例– MySQL

    2. ユニオンクエリの並べ替えエラー

    3. 並列計画の開始方法–パート4

    4. MySQLのサークルベースの検索に相当するST_Buffer?