Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.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
CakePHP';s";saveAll";需要3分钟以上才能保存?_Php_Mysql_Cakephp_Phpmyadmin - Fatal编程技术网

CakePHP';s";saveAll";需要3分钟以上才能保存?

CakePHP';s";saveAll";需要3分钟以上才能保存?,php,mysql,cakephp,phpmyadmin,Php,Mysql,Cakephp,Phpmyadmin,我正在使用CakePHP制作一个应用程序。我做了一个使用saveAll函数的操作 我认为它工作得很好,因为它不需要那么多数据,但使用saveAll或其他保存功能保存数据需要3分钟以上 有人发现我的错误吗 phpMyadmin的专栏: id、等级、学校详细信息id、总分、学校名称、, (约有300~400个数据) 将查询从foreach划分为更简单的方法 按描述顺序获得不同的总分 $data = $this->ClubScore->find('all', array('fields'

我正在使用CakePHP制作一个应用程序。我做了一个使用
saveAll
函数的操作

我认为它工作得很好,因为它不需要那么多数据,但使用
saveAll
或其他保存功能保存数据需要3分钟以上

有人发现我的错误吗

phpMyadmin的专栏: id、等级、学校详细信息id、总分、学校名称、, (约有300~400个数据)


将查询从foreach划分为更简单的方法

按描述顺序获得不同的总分

 $data = $this->ClubScore->find('all', array('fields'=>array('DISTINCT total_score'), 'order' => 'total_score DESC'));

然后使用updateAll和foreach将密钥保存为每个总分的排名

非常感谢Abhishek和AgRizzo,Nunser!! 现在,我已经完全解决了这个问题。只需要1到2秒

这是源代码

公共职能职级更新(){

多谢各位。
致以最诚挚的问候。

因此,我在您的代码中找不到任何对“saveAll”的引用……您应该利用数据库进行此操作。有许多帖子,例如使用以数据库为中心的解决方案。
 $data = $this->ClubScore->find('all', array('fields'=>array('DISTINCT total_score'), 'order' => 'total_score DESC'));
            $data = $this->ClubScore->find('all', array('fields'=>array('DISTINCT total_score'),       'order' => 'total_score DESC'));

            $check_scores = $this->ClubScore->find('all', array('fields'=>array('id','total_score')));

            $check_scores2 = Set::sort($check_scores, "{n}.ClubScore.total_score","DESC");

                $ii = 0;
                $temp = 0;
            foreach($check_scores2 as $scores):
                if($data[$ii]['ClubScore']['total_score']
                                == $scores['ClubScore']['total_score']){
                $temp=$ii+1;

                }else{
                $ii++;
                $temp=$ii+1;
                }

                $update_arr[] = array(
                    'ClubScore' => array(
                    'id' => $scores['ClubScore']['id'],
                    'rank' =>$temp,
                        )
                    );

            endforeach;

            $update_arr = Set::sort($update_arr, "{n}.ClubScore.id","ASC");

            var_dump($update_arr);

            foreach($update_arr as $update_arrs):
            $this->ClubScore->updateAll(
                array(
                    'ClubScore.rank' => $update_arrs['ClubScore']['rank'],
                ),
                array(
                    'ClubScore.id' => $update_arrs['ClubScore']['id'],
                    )
                );
            endforeach;


}