Probleem in VuFind ORM framework

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kenneth Dehouwer

Kenneth Dehouwer

09/08/2011 09:25:19
Quote Anchor link
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)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?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));
?>
Gewijzigd op 09/08/2011 09:26:05 door Kenneth Dehouwer
 
PHP hulp

PHP hulp

26/04/2024 13:22:33
 
Sebastiaan Blaas

Sebastiaan Blaas

16/09/2011 00:01:18
Quote Anchor link
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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.