Skip to content
Extraits de code Groupes Projets
Valider 74c8cbbf rédigé par cerdic's avatar cerdic Validation de marcimat
Parcourir les fichiers

fix: POC de clause limit automatique sur les boucles paginées quand le debut...

fix: POC de clause limit automatique sur les boucles paginées quand le debut est connu (ne commençant pas par un @ donc)
parent 1bf3f106
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -172,6 +172,15 @@ class Sql extends AbstractIterateur implements Iterator
protected function select() {
$this->row = null;
$v = &$this->command;
$limit = $v['limit'];
$count_total_from_query = false;
if (empty($v['limit']) && !empty($v['pagination'])) {
[$debut, $nombre] = $v['pagination'];
if ($debut === null || is_numeric($debut)) {
$limit = '0,' . (intval($debut) + intval($nombre));
$count_total_from_query = true;
}
}
$this->sqlresult = calculer_select(
$v['select'],
$v['from'],
......@@ -180,14 +189,37 @@ class Sql extends AbstractIterateur implements Iterator
$v['join'],
$v['groupby'],
$v['orderby'],
$v['limit'],
$limit,
$v['having'],
$v['table'],
$v['id'],
$v['connect'],
$this->info
);
$this->err = !$this->sqlresult;
if ($count_total_from_query && !$this->err) {
$query = calculer_select(
$v['select'],
$v['from'],
$v['type'],
$v['where'],
$v['join'],
$v['groupby'],
$v['orderby'],
'',
$v['having'],
$v['table'],
$v['id'],
$v['connect'],
false
);
$query_parts = explode('FROM', $query, 2);
$query = 'SELECT count(*) FROM ' . end($query_parts);
$res = sql_query($query, $v['connect']);
$row = sql_fetch($res);
$this->total = reset($row);
}
$this->firstseek = false;
$this->pos = -1;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter