php - 使用 PHP 无法正确执行 INSERT MySQL 查询

标签 php mysql

我目前正在为我的学校制作一个毕业网站,毕业生应该在其中提交评论并提交投票。

数据库有 4 个表,一张用于学生信息,一张用于问题,一张用于评论,其中有一个外键引用学生的 snum,一张用于民意调查(称为调查),其中有 2 个外键,一个再次引用 snum以及一个引用问题 ID 的问题。

这是我的学长留给我的代码。它应该做的是在评论和调查表中创建空白行以便稍后更新。然而,它实际上所做的是将评论表中的所有内容发送两次(因此,如果有 300 名学生,我最终会在评论表中得到 600 行,在调查表中得到 0 行)

我对 MySQL 和 PHP 还很陌生,大约一个月前才学会。如果有人可以提供帮助或提出更好的方法来解决此问题,我们将不胜感激。

$sql_query = "SELECT snum FROM students;";
$result = mysqli_query($link,$sql_query);
while ($list = mysqli_fetch_array($result)) {
    $snum[] = $list['snum'];
}

$sql_query = "SELECT qid FROM questions WHERE want = 1;";
$result = mysqli_query($link,$sql_query);
while ($question_list = mysqli_fetch_array($result)) {
    $qid[] = $list['qid'];
}

for ($i = 0; $i < count($snum); $i++)
{
    $sql_query = "INSERT INTO comments (snum, comment) VALUES ('{$snum[$i]}' , NULL);";
    $result = mysqli_query($link,$sql_query);
    for ($a = 0; $a < count($qid); $a++) {
        $sql_query = "INSERT INTO survey (snum, qid, male, female) VALUES ('{$snum[$i]}', {$qid[$a]}, NULL, NULL);";
        $result = mysqli_query($link,$sql_query);
    }
}

更新1:我想我找到了问题所在。当我尝试输出 $qid[$a] 时,我得到一个空值。表中,qid 是一个smallint unsigned,不为null,auto_increment,并且是主键。

最佳答案

试试这个代码

<?php
    $sql_query = "SELECT snum FROM students";
    $result = mysql_query($link,$sql_query);
    while ($list = mysql_fetch_array($result)) {
        $snum[] = $list['snum'];
    }

    $sql_query = "SELECT qid FROM questions WHERE want = '1' ";
    $result = mysql_query($link,$sql_query);
    while ($question_list = mysql_fetch_array($result)) {
        $qid[] = $list['qid'];
    }



    for ($i = 0; $i < count($snum); $i++){

        $sql_query = "INSERT INTO comments (snum, comment) VALUES ('".$snum[$i]."' , '');";
        $result = mysql_query($link,$sql_query);

        for ($a = 0; $a < count($qid); $a++) {
            $sql_query = "INSERT INTO survey (snum, qid, male, female) VALUES ('".$snum[$i]."','".$qid[$a]."', '', '');";
            $result = mysql_query($link,$sql_query);
        }

    }
 ?>

关于php - 使用 PHP 无法正确执行 INSERT MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34554140/

相关文章:

php - 如何在 Linux 上从 C 代码调用 php 脚本

php - 执行以下循环的更简洁的方法?

php - Sonata FormMapper 从整数字段添加链接

php - MySQL:仅返回一个表中的行,其中另一个表的一列中的所有值都相同

php - 在运行时在 php 中添加文本字段

mySQL 1 个语句中的多个联接仅显示属性标题

php - 从 Android 应用程序将数据插入 MySQL

mysql - 创建用户帐户

php - Cakephp博客教程-添加一层

php - Quickbooks Windows 与 PHP MySQL 镜像同步