Php 限制执行查询后返回的行数
我正在使用ZEND MVC框架,在模态零件表部分执行查询后,查询返回12行。我在服务部分传递返回的行,并进一步将结果传递给控制器,控制器将为我提供前端的最终视图 我想将视图部分中的行数限制为3。我不能在我的查询中使用限制3,因为我正在与其他查询进一步交互并比较结果,所以我需要所有12行。是否有可能在服务区设置限制 这是我的密码。虽然我不需要把我的每一个代码位,但这将给出一个明确的想法 模态表部件Php 限制执行查询后返回的行数,php,jquery,mysql,zend-framework,Php,Jquery,Mysql,Zend Framework,我正在使用ZEND MVC框架,在模态零件表部分执行查询后,查询返回12行。我在服务部分传递返回的行,并进一步将结果传递给控制器,控制器将为我提供前端的最终视图 我想将视图部分中的行数限制为3。我不能在我的查询中使用限制3,因为我正在与其他查询进一步交互并比较结果,所以我需要所有12行。是否有可能在服务区设置限制 这是我的密码。虽然我不需要把我的每一个代码位,但这将给出一个明确的想法 模态表部件 public function getJobTopStatements( UserJobEntit
public function getJobTopStatements( UserJobEntity $activeJob, $intervalInMonths = NULL ){
if($intervalInMonths){
$interval = ' AND ss.datetime < ADDDATE( NOW(), INTERVAL -'.$intervalInMonths.' MONTH) ';
}
$testQuestionTable = $this->getServiceLocator()->get('testQuestionTable');
$questionAnswerTable = $this->getServiceLocator()->get('questionAnswerTable');
$testAnswerTable = $this->getServiceLocator()->get('testAnswerTable');
$query = 'SELECT
t.id,
t.text,
t.key,
s.answer
FROM '. $testQuestionTable->getTable() .' AS t
LEFT JOIN '. $questionAnswerTable->getTable() .' as s ON (s.testQuestionId = t.id)
LEFT JOIN '. $testAnswerTable->getTable() .' as m ON (m.id = s.testAnswerId AND
m.id = (SELECT MAX(ss.id)
FROM ' . $testAnswerTable->getTable() . ' as ss
WHERE ss.userJobId = '. $activeJob->getId() .'
'.$interval.'
)
)
WHERE m.userJobId = '. $activeJob->getId() .'
GROUP BY t.id
ORDER BY m.id DESC, s.answer DESC';
return $this->adapter->query($query, 'execute')->toArray();
}
最后,控制器部分返回这个视图
$view->jobTopStatements = $testAnswerService->getActiveJobTopStatements();
有没有办法在服务部分设置限制,使其只通过3行而不是12行?可能会在getActiveJobTopStatements中添加一个参数,指定结果的最大数量,所有结果的默认值为0?你的意思是使用该函数限制MYSQL吗?@Jack先生,没错。如果我在MYSQL中使用LIMIT函数,它只会给我3行,但我需要所有12行,以便对其他查询进行进一步计算。只调用一次,您似乎会将其存储在一个数组中,然后您可以-调用两次,您可以为每个调用指定不同的限制。@Nish这样做会使结果仅为3行。您需要在返回后进行切片,仅针对在其中使用它的函数。哪一段代码调用getActiveJobTopStatements$查看->jobTopStatements=$testAnswerService->getActiveJobTopStatements;然后添加另一个变量$topthreeJobStatements=array_slice$view->jobTopStatements,0,3;
$view->jobTopStatements = $testAnswerService->getActiveJobTopStatements();