sql >> Database >  >> RDS >> Mysql

CakePHP Pagineringtelling komt niet overeen met zoekopdracht?

Het komt door de group by Ik heb een oplossing gevonden. Ik zou graag de link plaatsen, maar ik ben hem kwijt, dus ik zal de code posten:

public function paginateCount($conditions = null, $recursive = 0, $extra = array()) {
    $parameters = compact('conditions', 'recursive');
    if (isset($extra['group'])) {
        $parameters['fields'] = $extra['group'];
        if (is_string($parameters['fields'])) {
            // pagination with single GROUP BY field
            if (substr($parameters['fields'], 0, 9) != 'DISTINCT ') {
                $parameters['fields'] = 'DISTINCT ' . $parameters['fields'];
            }
            unset($extra['group']);
            $count = $this->find('count', array_merge($parameters, $extra));
        } else {
            // resort to inefficient method for multiple GROUP BY fields
            $count = $this->find('count', array_merge($parameters, $extra));
            $count = $this->getAffectedRows();
        }
    } else {
        // regular pagination
        $count = $this->find('count', array_merge($parameters, $extra));
    }
    return $count;
}

Ik heb het toegevoegd in de app_model en het werkt prima voor mij :)

Ik hoop dat dit helpt

Bewerkt: Ik heb de link gevonden =)

http://wiltonsoftware.com/posts /view/custom-group-by-pagetion-and-a-calculated-field



  1. PHP Sessies opslaan in de database. Leesmethode lijkt niet te werken

  2. Beste manier om grote (UUID) als primaire sleutel van MySQL-tabel te verwerken

  3. hoe de gegevens op te slaan die de gebruiker invoert op de formulierpagina nadat het script is uitgevoerd?

  4. MySQL SHA2-functie lijkt niet te werken