Как вставить теги в 3 таблицы системы в PHP и SQL - PullRequest
3 голосов
/ 28 ноября 2011

Я пытаюсь сделать 3 таблицы тегов системы.У меня есть 3 таблицы в MySQL:

#Articles#<br> id<br> article<br> content

#Tags#<br> tag_id<br> tag (unique)

#tagmap#<br> id<br> tag-id<br> articleid

В моем представлении php у меня есть:

$tags= explode(',', strtolower($_POST['insert_tags']));

for ($x = 0; $x < count($tags); $x++) {
    //Add new tag if not exist
    $queryt = "INSERT INTO `tags` (`tag_id`, `tag`) VALUES ('', '$tags[x]')";
    $maket = mysql_query($queryt);

    //Add the relational Link, now this is not working, beacasue this is only draft
    $querytm = "INSERT INTO `tagmap` (`id`, `tagid`, `articleid`) VALUES ('',  (SELECT `tag_id` FROM `tags` WHERE tag_id  = "$tags[x]"), '$articleid')";
    $maketm = mysql_query($querytm);
    }

Это не работает, когда я отправляю новые теги в статью.Mysql не создает новые теги в моей таблице тегов.

PS.Извините за плохой английский.

1 Ответ

3 голосов
/ 28 ноября 2011

Вам не хватает знака $ для переменной 'x'. Попробуйте так для обеих строк.

'" . $tags[$x] . "'

Также я предлагаю этот способ, не нужно усложнять ваши SQL-запросы.

$tags= explode(',', strtolower($_POST['insert_tags']));
for ($x = 0; $x < count($tags); $x++) {
    //Add new tag if not exist
    $queryt = "INSERT INTO `tags` (`tag_id`, `tag`) VALUES ('', '" . $tags[$x] . "')";
    $maket = mysql_query($queryt);

    //Get tag id
    $tag_id = mysql_insert_id();

    //Add the relational Link, now this is not working, beacasue this is only draft
    $querytm = "INSERT INTO `tagmap` (`id`, `tagid`, `articleid`) VALUES ('',  '$tag_id', '$articleid')";
    $maketm = mysql_query($querytm);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...