Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MySQL-用户提交时存储的数据不正确?_Php_Mysql - Fatal编程技术网

PHP/MySQL-用户提交时存储的数据不正确?

PHP/MySQL-用户提交时存储的数据不正确?,php,mysql,Php,Mysql,首先让我解释一下,我有一个脚本,它应该允许用户输入多个以逗号分隔的标记,例如,html、css、php、mysql,并将每个标记存储在数据库中,并将其与标记的问题相关联 但是由于某些原因,这些标签没有正确地与问题\u标签表关联。为了更好地解释我所说的内容以及我希望发生的事情,请查看下面的表格布局 我希望我解释得对吗 有人能给我举几个例子,说明我需要在脚本中修改什么才能解决这个问题吗 下面是发生的情况 表:问题和标签 id tag_id users_questions_id 1 1

首先让我解释一下,我有一个脚本,它应该允许用户输入多个以逗号分隔的标记,例如,
html、css、php、mysql
,并将每个标记存储在数据库中,并将其与标记的问题相关联

但是由于某些原因,这些标签没有正确地与
问题\u标签
表关联。为了更好地解释我所说的内容以及我希望发生的事情,请查看下面的表格布局

我希望我解释得对吗

有人能给我举几个例子,说明我需要在脚本中修改什么才能解决这个问题吗

下面是发生的情况

表:问题和标签

id  tag_id  users_questions_id
1   1       3
id  tag_id  users_questions_id
1   1       3
2   2       3
3   3       3
4   4       3
表:标签

id  tag
1   html
2   css
3   php
4   mysql
id  tag
1   html
2   css
3   php
4   mysql
下面是我想要发生的事情

表:问题和标签

id  tag_id  users_questions_id
1   1       3
id  tag_id  users_questions_id
1   1       3
2   2       3
3   3       3
4   4       3
表:标签

id  tag
1   html
2   css
3   php
4   mysql
id  tag
1   html
2   css
3   php
4   mysql
下面是我的MySQL表

CREATE TABLE questions_tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag_id INT UNSIGNED NOT NULL,
users_questions_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 questions_tags.*, tags.* FROM questions_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 questions_tags.*, tags.* FROM questions_tags INNER JOIN tags ON tags.id = questions_tags.tag_id WHERE questions_tags.users_questions_id='$page'");
if(mysqli_num_rows($dbc) >= 0){

if (isset($_POST['tag'])){
    $tags = explode(",", $_POST['tag']);

    for ($x = 0; $x < count($tags); $x++){

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

$query1 = "INSERT INTO tags (tag) VALUES ('" . $tags[$x] . "')";


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

$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT id FROM tags WHERE tag='" . $tags[$x] . "'");

    }
}

if (!$dbc) {
    print mysqli_error($mysqli);
}  else {
    while($row = mysqli_fetch_array($dbc)){
        $id = $row["id"];
    }
}

$query2 = "INSERT INTO questions_tags (tag_id, users_questions_id) VALUES ('$id', '$page')";

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

echo "$tag has been entered";

    if (!$dbc) {
            print mysqli_error($mysqli);
    }
}
mysqli_close($mysqli);
}
?> 
您的最佳选择是:

  • 在MySQL服务器上登录PHPMyAdmin
  • 手动将条目添加到问题标签列
  • 将PHPMyAdmin创建的MySQL查询复制并粘贴到php脚本中
  • 试试看

    INSERT INTO questions_tags (tag_id, users_questions_id) VALUES ($id, $page)
    

    这是您用几乎相似的代码问的第三个问题。在你尝试克隆stackoverflow之前,你为什么不开始学习PHP和MySQL呢?如果你的答案是无效的,那就保密吧,不,这不是stackoverflow的克隆。他是对的。。。到目前为止,我在这里看到了许多相同的问题。当然,他不是非常机智,但你必须意识到堆栈溢出不会为你的网站编程。id是一个int,为什么你要用引号插入它这部分是评论部分,所以从技术上讲,哈夫丹没有给你答案,而是给你一条评论。