首页 > 解决方案 > PHP & MySQL:将选择结果插入 id 为 auto_increment 的表中

问题描述

我正在尝试为从 userInformation 创建的每个组分配一个 ID 号并保存到 groupInformation。我不断收到错误:

列计数与第 1 行的值计数不匹配

我不确定是否应该增加 groupId。如果通过php或mysql。有人建议我创建一个数组来增加 groupId,但我不知道如何开始。

我的表是:

GroupInformation = GroupId(主键,auto_increment),RegistrationId(外键)

UserInformation = RegistrationId(primary key, auto_increment), Name, Email, Address

$GroupSize = $_POST['groupsize'];

$con = mysqli_connect($host, $user, $password, $dbName) or die("Nope");

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

//assign group id to groups created
//insert RegistrationId into groupinformation from records randomly selected from userInformation,  group Id must increment by every group created in groupinformation

//$query ="Select RegistrationId from userInformation order by RAND() LIMIT ".$GroupSize;
   $query = "INSERT INTO groupInformation SELECT RegistrationId FROM (SELECT RegistrationId FROM userInformation ORDER BY RAND() LIMIT ".$GroupSize.") as res";

    $result = mysqli_query($con, $query) or die ("query failed " . mysqli_error($con));


//unsure how to use this array
    while (($row = mysqli_fetch_row($result)) == true) {
        echo $row[0].'<br>';

    }

标签: phpmysql

解决方案


试试这个查询:

$query = "INSERT INTO groupInformation (RegistrationId) SELECT RegistrationId FROM (SELECT RegistrationId FROM userInformation ORDER BY RAND() LIMIT ".$GroupSize.") as res";


推荐阅读