आप 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)");
}
}