Probleem in VuFind ORM framework
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)
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
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));
?>
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
Uitzondering op deze regel is SQL_CALC_FOUND_ROWS