Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP/MySQL - Jak dodać wiele tagów

możesz użyć explode()

Aby uzyskać tablicę tagów oddzielonych przecinkami

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

Następnie możesz przejść przez tablicę w pętli, aby wstawić do bazy danych

Możesz również chcieć, aby Twoje zapytanie Utwórz zawierało UNIQUE

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

W ten sposób nie będziesz mieć dwóch tagów o tej samej nazwie. Poszukaj dalszych wyjaśnień na temat WYJĄTKOWY składnia

Oto kodowanie bez testowania 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. Yii2 i przechowywanie danych w bazie danych jako UTC

  2. Jak mogę zaimportować duży (14 GB) plik zrzutu MySQL do nowej bazy danych MySQL?

  3. Powolne wstawianie MySQL

  4. Błąd identyfikatora zasobu #6 w PHP z MySQL

  5. Pobieranie danych z wielu tabel w jednym wierszu przy jednoczesnym łączeniu niektórych wartości