50 per pagina i.c.m. sorteren
Code (php)
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 :-)
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.
Eigenlijk soortgelijke aanpak zeg maar.
Maar zo is het natuurlijk net zo mooi, misschien zelfs nog wel mooier :-)
Dankje San!
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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 ...
?>
// 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
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
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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 ...
?>
// 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.