Mysql
 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`)
);

По този начин няма да имате два етикета с едно и също име. Вижте тук за допълнително обяснение относно УНИКАЛНО синтаксис

Ето кодиране без тестване 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. InnoDB отнема повече от час за импортиране на 600MB файл, MyISAM за няколко минути

  2. Може ли кардиналността да се различава за дублиращи се индекси в mysql?

  3. Как да използвате MySql на Mac

  4. В MySQL как можем да разберем дали даден индекс на таблица е клъстериран или не?

  5. Как да търсите няколко колони в MySQL?