首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >for循环中的Mysql查询未插入所有值

for循环中的Mysql查询未插入所有值
EN

Stack Overflow用户
提问于 2014-02-25 20:19:57
回答 2查看 501关注 0票数 1

我有以下for循环,它们应该将值插入到mysql表中。有一个users数组,它循环遍历数组并计算统计数据,它应该将所有值插入到mysql表中,但它只插入对users数组的第一个元素执行的操作,而不插入其余元素。它忽略了第一个for循环,并且只插入了第二个for循环,尽管我可以看到循环正在做它们应该做的事情,只是没有被插入到mysql中。

代码语言:javascript
复制
for($i=0; $i<count($users); $i++)
{
    for($j=$i+1; $j<count($users); $j++)
    {
        $user1=$users[$i];
        $user2=$users[$j];
        $dat1=getData($user1);
        $dat2=getData($user2);
        $union=count(array_unique(array_merge($dat1, $dat2)));
        $intersect=count(array_intersect($dat1, $dat2));
        $rate=$intersect/$union;
        $sql = "INSERT IGNORE into dat_net VALUES ($user1,$user2,$union,$intersect,$rate)";
        $sqlresults = mysql_query($sql);
        echo " ".$user1." ".$user2." \n";
        if ($sqlresults === false) {
    // An error has occured...
    echo mysql_error();
}


    }

}

由于注释中的提示而得到解决:我无意中为列设置了键,因此由于重复而不能插入。

EN

回答 2

Stack Overflow用户

发布于 2014-02-25 20:32:35

首先,使用一个查询插入所有数据。在for循环中生成它,然后调用一次mysql查询。

只需在执行前回显生成的查询,并尝试使用某个sql客户端运行它,就可以检查生成的查询是否正常工作。

票数 1
EN

Stack Overflow用户

发布于 2014-02-25 20:40:03

尝尝这个,

代码语言:javascript
复制
$sql = "INSERT IGNORE into dat_net VALUES ('{$user1}','{$user2}','{$union}','{$intersect}','{$rate}')";

但是,如果您在foreach循环中创建一个insert查询,然后在完成foreach循环后触发它一次,这将是很好的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22014040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档