sql >> Database teknologi >  >> RDS >> Mysql

PHP/MySQL - Sådan tilføjes flere tags

du kan bruge explode()

For at få en række tags adskilt af kommaer

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

Derefter kan du sløjfe gennem arrayet for at indsætte i databasen

Du vil måske også have, at din Opret forespørgsel inkluderer UNIQUE

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

På denne måde har du ikke to tags med samme navn. Se her for yderligere forklaring på UNIK syntaks

Her går kodning uden at teste 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. Formater MySQL-kode inde i PHP-strengen

  2. PHP-fora - hvordan man håndterer ulæste diskussioner / emner / indlæg

  3. SYSDATETIMEOFFSET() Eksempler i SQL Server (T-SQL)

  4. ORA-00904 ugyldig identifikator på afkodningsalias