Dit is de code van een zoekfunctie in mijn project.
De reden waarom ik GET ipv POST gebruikt heb, is omdat het makkelijker werken was in het framework.
Het probleem dat ik nu ondervind is dat ik altijd maar 5 records terugkrijg als ik een count doe (wat natuurlijk komt door de LIMIT), en door het framework maakt het niet uit of je eerst de count of limit doet, het geeft allebei niet het correcte resultaat.
Ik zou een manier willen hebben om die count correct te doen zodat ook mijn next en previous knoppen goed gaan werken want nu krijgt hij altijd 1 als resultaat (kijk naar variabele $pages)


<?php
if(isset($_GET['submit'])){
    $firstname = $_GET['txtFirstname'];
    $lastname = $_GET['txtLastname'];  
    $rol = $_GET['rollen']; 
    $partnerID = $_GET['partners'];
    $searchUser = new User();

    if (!empty($firstname)) {
        $searchUser->whereAdd("`user`.firstname like '%" . $firstname . "%'");
    }
    if (!empty($lastname)) {
        $searchUser->whereAdd("lastname like '%" . $lastname . "%'");
    }
    $joinPartner = new Partner();
    if (!empty($partnerID)) {
        $joinPartner->id = $partnerID;
    }
    $searchUser->joinAdd($joinPartner, 'LEFT');
    $searchUser->selectAs($joinPartner, 'p_%s');
    $searchUser->selectAs($searchUser, 'u_%s');

    $joinRole = new Role();
    if (!empty($rol)) {
        $joinRole->id = $rol;
    }
    $user_role = new User_role();
    $user_role->joinAdd($joinRole);
    $searchUser->joinAdd($user_role);
    $searchUser->selectAs($joinRole, 'r_%s');

    $results_per_page = 5;
        		
    if(!isset($_GET['screen'])){
       $_GET['screen'] = 0;
    }
    $start = $_GET['screen'] * $results_per_page;
    $searchUser->limit($start, $results_per_page);
    $interface->assign('screen', $_GET['screen']);

    $searchUser->find();
    $searchResult = array();
    
    while($searchUser->fetch()) {
        $searchResult[] = clone($searchUser);
    }
    $interface->assign('searchUsers', $searchResult);

    $pages = ceil(COUNT($searchResult) /$results_per_page); 
    $interface->assign('pages', $pages);

    /* Hier gaat het mis, door de limit krijg ik maar 5 resultaten terug
       Terwijl ik alle gevonden resultaten wil weergeven
    */
    $interface->assign('numberOfUsersFound', count($searchResult));
?>
als je een limit gebruikt is in theorie de count / mysql_numrows altijd de limit ( tenzij er minder zijn ).

Uitzondering op deze regel is SQL_CALC_FOUND_ROWS

Reageren