50 per pagina i.c.m. sorteren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Eric T

Eric T

28/06/2015 21:07:41
Quote Anchor link
Ik heb de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$query1 = mysql_query("SELECT inschrijfnr,vn,an,school,groep,straat,huisnr,postcode,team FROM inschrijvingen WHERE inschrijfnr BETWEEN $isnstart AND $isnend ORDER BY inschrijfnr ASC ");

Wat ik er mee doe is 50 regels per pagina laten zien. So far so good.

Maar nu het probleem...
Tijdens een indeel-periode wordt door de administrator aan alle ingeschreven een teamnummer toegewezen.
Dat wordt vooral bepaald op basis van school en groep.
Ofwel, ik wil een output hebben van alle ingeschrevenen gesorteerd per school/groep, maar dan wel 50 per pagina.
Het kan dus zo zijn dat bijv. inschrijfnr 14001 en 14240 bij elkaar in de klas zitten.
LIMIT 50 gaat logischerwijs alleen op voor de eerste 50, dis m.i. kan ik daar niet veel mee...
Ik wil natuurlijk op pagina 2 51-100 laten zien, en op pagina 3: 101-150. Enz.

En daar raak ik het een beetje kwijt...
Hoe krijg ik het nou voor elkaar om te sorteren op school/groep, en nog steeds kunnen bladeren (dus 50 per pagina).
Dat laatste doe ik overigens met javascript, mocht dat verder van belang zijn.

Zoals ik het bekijk zit het probleem in het opstellen van de juiste mysql query...

Of iemand anders een idee hoe aan te pakken?

Alvast dank voor het mee denken.

Eric

Toevoeging op 28/06/2015 21:16:08:

Ik kan het topic helaas niet verwijderen, maar het lijkt er op dat 'offset' de oplossing gaat worden...
Vooralsnog: opgelost :-)
 
PHP hulp

PHP hulp

29/03/2024 09:40:51
 
- SanThe -

- SanThe -

28/06/2015 21:19:09
Quote Anchor link
ORDER BY school ASC, groep ASC, inschrijfnr ASC LIMIT 0, 50 // eerste 50
ORDER BY school ASC, groep ASC, inschrijfnr ASC LIMIT 50, 50 // tweede 50
ORDER BY school ASC, groep ASC, inschrijfnr ASC LIMIT 100, 50 // derde 50

Die 0, 50 en 100 kan je bv. in een session bijhouden en verhogen/verlagen.
 
Eric T

Eric T

28/06/2015 21:23:29
Quote Anchor link
Ja precies, dat heb ik nu idd in de gaten toen ik de mogelijkheid van offset ook zag :-)
Eigenlijk soortgelijke aanpak zeg maar.
Maar zo is het natuurlijk net zo mooi, misschien zelfs nog wel mooier :-)

Dankje San!
 
Frank Nietbelangrijk

Frank Nietbelangrijk

28/06/2015 23:34:54
Quote Anchor link
In een session bijhouden zou ik niet doen. Ik zou het in de URL verwerken

http://www.school.nl/overzicht
http://www.school.nl/overzicht?page=1
http://www.school.nl/overzicht?page=2
http://www.school.nl/overzicht?page=3

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
<?php

// initialisatie
$page = 1;

// indien we een geldige GET variable 'page' hebben...
if(isset($_GET['page']) && intval($_GET['page']) > 0)
{

    $page = intval($_GET['page']);
}


$rowsPerPage = 50; /* zet dit ergens in de config! */

$startAt = $rowsPerPage * ($page - 1);

$sql = "ORDER BY school ASC, groep ASC, inschrijfnr ASC LIMIT ".$startAt.", ".$rowsPerPage;

// en nu verder ...
?>
Gewijzigd op 28/06/2015 23:42:29 door Frank Nietbelangrijk
 
Johan de wit

johan de wit

29/06/2015 00:05:25
Quote Anchor link
Frank Nietbelangrijk op 28/06/2015 23:34:54:
In een session bijhouden zou ik niet doen. Ik zou het in de URL verwerken

http://www.school.nl/overzicht
http://www.school.nl/overzicht?page=1
http://www.school.nl/overzicht?page=2
http://www.school.nl/overzicht?page=3

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
<?php

// initialisatie
$page = 1;

// indien we een geldige GET variable 'page' hebben...
if(isset($_GET['page']) && intval($_GET['page']) > 0)
{

    $page = intval($_GET['page']);
}


$rowsPerPage = 50; /* zet dit ergens in de config! */

$startAt = $rowsPerPage * ($page - 1);

$sql = "ORDER BY school ASC, groep ASC, inschrijfnr ASC LIMIT ".$startAt.", ".$rowsPerPage;

// en nu verder ...
?>


Inderdaad via url is beter.
 



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.