Проблема таблицы PHP / MySQL? - PullRequest
       10

Проблема таблицы PHP / MySQL?

0 голосов
/ 04 декабря 2009

Я могу обновить почти все в обеих моих таблицах mysql, когда кто-то вводит тег. Я просто не знаю, как добавить значение id таблицы тегов в значение tag_id таблицы q_tags, которое будет таким же, когда пользователь вводит тег.

Надеюсь, я все объяснил.

Может кто-нибудь, пожалуйста, помогите мне.

Вот таблицы MySQL ниже.

CREATE TABLE q_tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag_id INT UNSIGNED NOT NULL, //This value should be same as the tags table id
users_q_id INT UNSIGNED NOT NULL,
PRIMARY KEY (id)
);

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

Вот скрипт ниже.

<?php 

require_once ('./mysqli_connect.php');

if (isset($_POST['submitted'])) {

        $mysqli = new mysqli("localhost", "root", "", "sitename");
        $dbc = mysqli_query($mysqli,"SELECT q_tags.*, tags.* FROM q_tags, tags");
    if (!$dbc) {
        print mysqli_error($mysqli);
    }

$page = '3';
$tag = mysqli_real_escape_string($mysqli, $_POST['tag']);

$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT q_tags.*, tags.* FROM q_tags INNER JOIN tags ON tags.id = q_tags.tag_id WHERE q_tags.users_q_id=3");

if(!mysqli_num_rows($dbc)){

$mysqli = new mysqli("localhost", "root", "", "sitename");
$clean_url = mysqli_real_escape_string($mysqli, $page);

$query1 = "INSERT INTO q_tags (tag_id, users_q_id) VALUES ('', '$page')";
$query2 = "INSERT INTO tags (tag) VALUES ('$tag')";

if (!mysqli_query($mysqli, $query1)) {
    print mysqli_error($mysqli);
    return;
}

if (!mysqli_query($mysqli, $query2)) {
    print mysqli_error($mysqli);
    return;
}

echo "$tag has been entered";

    if (!$dbc) {
            print mysqli_error($mysqli);
    }
}
mysqli_close($mysqli);
}
?> 

1 Ответ

0 голосов
/ 04 декабря 2009

Кажется, вы пытаетесь вставить ноль в таблицу q_tags. Вам нужно получить последний вставленный идентификатор, прежде чем вы сможете вставить его в таблицу q_tags.

Попробуйте вместо этого:

$query1 = "INSERT INTO tags (tag) VALUES ('$tag')";
if (!mysqli_query($mysqli, $query1)) {
    print mysqli_error($mysqli);
    return;
}
$lastId = mysql_insert_id();
$query2 = "INSERT INTO q_tags (tag_id, users_q_id) VALUES ('$lastId', '$page')";
if (!mysqli_query($mysqli, $query2)) {
    print mysqli_error($mysqli);
    return;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...