Paginering

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Ontwikkelaar

Functie omschrijving Voor een echt familiebedrijf in de omgeving van 's-Hertogenbosch ben ik op zoek naar een Software Developer. Jij gaat in de functie van Software Developer werken met C# en .NET framework Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Deze organisatie is

Bekijk vacature »

Machine Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Machine Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Machine Software Developer ben je verantwoordelijk voor: - Je ontwerpt, ontwikkelt en debugt software voor machinebesturingssystemen en complexe landbouwmachines; - Je stelt gebruikersinterfaces op (cabinedisplays); - Op termijn ga je softwareprojecten leiden voor specifieke machines; - Inclusief planning, documentatie en validatie; - Om specificaties te verifiëren

Bekijk vacature »

Full stack ontwikkelaar Laravel, Vue.js

Functie Als ontwikkelaar binnen deze organisatie hou jij je voornamelijk met lopende projecten voor de verschillende klanten. Zo bouw je de ene dag aan prijsschifting systemen en de andere dag onderzoek je crawlers en stel je ze zo in dat de data goed binnen komt binnen het systeem. Daarnaast bouw je mee aan dashboards en ben je dus constant bezig met het verbeteren van het platform. Er is een vaste werkwijze, zo werken ze met Trello kaarten en onderverdelen ze deze aan het begin van iedere week onder de developers. Dit wordt door de lead developer gedaan, maar in samenspraak

Bekijk vacature »

.NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Back end developer Python, PHP

Functie Jij als full stack ontwikkelaar zult komen te werken samen met 1 PHP ontwikkelaar een PO en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult voornamelijk (lees 75%) werken aan de roostersoftware. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere flexwerkers ingezet kan worden. Verder willen ze financiële koppelingen gaan maken

Bekijk vacature »

T-SQL Database developer

Functie omschrijving Ben jij een ETL database specialist? Houd jij ervan om te puzzelen met Databases, Query's & Stored procedures? Zoek jij uitdaging, vrijheid en verantwoordelijkheid? Zoek dan niet verder! Wij zijn per direct op zoek naar medior en senior database developers. Je gaat werken voor een relatief klein softwarebedrijf in omgeving Tilburg. Samen met 12 collega's (allemaal techneuten), ga jij je bezig houden met het bouwen en/of onderhouden van database software. Deze software wordt internationaal ingezet voor het automatiseren van logistieke processen. Jouw werkzaamheden gaan er als volgt uit zien: Je bent in een klein team met developers, verantwoordelijk

Bekijk vacature »

PHP Developer

Dit ga je doen Je werkt nauw samen met het websitebureau aan de ontwikkeling en optimalisering van het internationale platform; Je ziet nieuwe webshops op en voert optimalisaties door; Je bouwt aan technische, functioneel en commercial resultaat; Je vindt het leuk om zelfstandig binnen een internationale organisatie te werken, maar krijgt ook energie om samen met collega's te werken. Hier ga je werken Voor een bedrijf in de regio Rotterdam zijn wij opzoek naar een PHP Developer. Je wordt onderdeel van het communicatieteam en gaat je bezighouden met het optimaliseren van de website van dit internationale bedrijf. Je schakelt veel

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer start jij in een development team met twee ervaren software ontwikkelaars. Jouw persoonlijke ontwikkeling is voor ons erg belangrijk en jij gaat dan ook meelopen met onze Senior .NET ontwikkelaar die jou met zijn kennis en ervaring een goede begeleiding kan aanbieden. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit

Bekijk vacature »

Junior .NET developer

Functie Om half 9 kom jij binnen en pak jij als eerst natuurlijk een bakje koffie of thee. Vervolgens ga jij je voorbereiden op de stand-up van kwart voor 9. Zijn er bijvoorbeeld dingen waar jij nog tegen aan loopt? Of is er nog code die getest of gereviewd moet worden? Vervolgens starten jullie met de stand up en na de stand up zoeken jullie elkaar op en gaan jullie aan de slag. Als team met 6 developers werken jullie in drie wekelijkse sprints. Het einde van een sprint is altijd op een donderdag zodat jullie op vrijdag de demo

Bekijk vacature »

C# Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Wil jij graag aan de slag als C# ontwikkelaar en jouw skills verder ontwikkelen? Zoek niet verder! Als C# ontwikkelaar ga je aan de slag met de volgende taken: (verdere) ontwikkeling van de software voor de interne processen binnen een .net omgeving; optimaliseren van de dataprocessing; ontwerpen en implementeren van zowel desktop- als web-programmatuur; ontwikkeling van tools ten behoeve van consultants en klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Den Bosch. Zij ontwikkelen business intelligence software voor een specifieke branche. Dit houdt in dat zij dashboards ontwikkelen

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Senior Front-end developer Consultancy

Functie Als front-end developer ga je aan de slag voor verschillende klanten, waarbij veel rekening wordt gehouden met waar je woont (dit is altijd binnen het uur), en word er gezocht naar een organisatie die past bij jou. Zowel qua persoonlijke ambities als de technische aansluiting. De opdrachten duren gemiddeld 1 à 2 jaar maar dit hangt ook af van je wensen. Je werkt in een teamverband voor een klant en zult nauw samenwerken met zowel eigen collega’s als die bij de klant werkzaam zijn. Ze zijn op zoek naar een technische front-end developer die ruime ervaring heeft in één

Bekijk vacature »

Medior Java developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Account Developer

Voor Bol.com zijn wij per direct op zoek naar een Account Developer voor 32-40 uur per week op het kantoor in Utrecht. Wil jij een directe bijdrage leveren door partners van de juiste data-inzichten te voorzien en via campagnes op nieuwe platformkansen en features te wijzen? Ben jij analytisch sterk en kun jij dit vertalen naar plannen en inspirerende gesprekken? Lees dan snel verder! wat bieden wij jou Salaris van €2400 - €2600 obv 40 uur Minimaal 6 maanden Werklocatie is Utrecht Werken bij bol.com wie ben jij Jij bent commercieel gedreven en weet altijd aan de juiste knoppen te

Bekijk vacature »

.NET Developer Medior Senior

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Herbruikbare componenten maken; Testen; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als .NET Developer kom jij terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als .NET Developer werk jij aan het ontwikkelen van verbeterde software voor

Bekijk vacature »
Albert de Wit

Albert de Wit

25/10/2012 14:07:35
Quote Anchor link
Hallo,

Ik heb gisteren even een proefopstellinkje gemaakt waarop ik graag wat kritiek ontvang.

Ik heb een tabel gemaakt met de naam items. Hierin heb ik 3 kolommen: id_item, item, order1
id_item is een int, AI, en primary key
item is een varchar en unieke key
order1 is een int


Ik heb de database gevuld met random woordjes op de volgende manier:
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
<?php

$alphabet
= 'abcdefghijklmnopqrstuvwxyz';

for ($i = 0;$i < 4000; $i++){
    $order1 = 4000-$i;
    $aantal_letters = rand(4,5);
    $woord = '';
    for ($b = 0; $b < $aantal_letters; $b++){
        $letter = rand(0,24);
        $woord .= $alphabet[$letter];
    }

    $query = mysql_query("INSERT INTO items (item,order1) VALUES ('".$woord."','".$order1."')");
    
    if ($query){
        echo $woord.' is succesvol geplaatst<br>';
    }
else{
        echo '<br><br><br>'.mysql_error().'<br><br><br><br>';
        $i = 0;
    }
}

?>


Nadat ik 3424 rijen totaal had heb ik het volgende als paginering gemaakt:

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
mysql_connect('localhost','root','');
mysql_select_db('test');

$per_pagina = 15;

if (isset($_GET['begin'])){
    $begin = $_GET['begin'];
}
else{
    $begin = 1;
}

$eind = $begin+$per_pagina;

$query = mysql_query("SELECT * FROM items");

echo '<table>';
while ($row = mysql_fetch_row($query)){
    if ($row[0] > $begin && $row[0] <= $eind){
        echo '<tr><td>'.$row[0].'</td><td>'.$row[1].'</td><td>'.$row[2].'</td></tr>';    
    }
}

echo '</table>';

$totaal_rijen = mysql_num_rows($query);
$laatste_pagina = ceil($totaal_rijen/$per_pagina);

if (isset($_GET['begin'])){
    $begin = $_GET['begin'];    
}
else{
    $begin = 0;
}

$huidige_pagina = $begin/$per_pagina;

if ($huidige_pagina>2){
    $min = $huidige_pagina-1;    
    $plus = $huidige_pagina+3;
}
else{
    $min = 1;
    $plus = 5;
}


for ($i = $min; $i<= $plus; $i++){
    // paginering
    if ($i<=$laatste_pagina){
        if ($i>0){
            $pagina = $i-1;
        }
else{
            $pagina = 0;
        }

        $begin = ($pagina*$per_pagina);
        $eind  = ($pagina*$per_pagina)+15;
        echo '<a style="border:1px black solid;width:30px;display:block;float:left;"
        href="index.php?begin='
.$begin.'">'.$i.'</a> ';        
    }
}

?>


LET WEL: Dit is niet een officieel iets dat ik perfect moest hebben maar een improvisatie (gelieve dus geen rekening te houden met dingen als SQL injectie (niet mogelijk hier maar toch...))

Graag alle kritiek die dit zeker kan helpen verbeteren.
 
PHP hulp

PHP hulp

27/05/2026 10:31:06
 
Michel Falke

Michel Falke

25/10/2012 15:01:45
Quote Anchor link
Ik zou kiezen om de paginatie met behulp van jquery te doen. Er zijn echt heel veel jQuery paginatie klasses te vinden. In dat geval heb je een generieke oplossing die je overal weer zou kunnen gebruiken zonder dat je hier te veel php logica voor hoeft te schrijven.
Kijk bijvoorbeeld eens naar deze:
http://tympanus.net/jPaginate/
 
Albert de Wit

Albert de Wit

25/10/2012 15:28:05
Quote Anchor link
heb je mijn vraag gelezen en mijn code gezien? je antwoord heeft vrij weinig met mijn vraag te maken.
 
Q S

Q S

25/10/2012 15:35:36
Quote Anchor link
Ik zou eens kijken of je iets kan doen met de query. Nu haal je elke keer alle records op en dat is dan weer zonde.
 
Albert de Wit

Albert de Wit

25/10/2012 15:39:48
Quote Anchor link
dat is nou net het probleem. ik haal nu 3424 records op elke keer maar gebruik daar maar 15 van. hoe kan ik zoiets dan doen?

als ik bijvoorbeeld ga filteren op 'item LIKE %d%' en een Limit erop zet, hoe bereken ik dan weer de huidige pagina etc
 
Q S

Q S

25/10/2012 15:43:52
Quote Anchor link
Je zou kunnen werken met een ID of een volgorde.
Dus dan krijg je iets als dit

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
= mysql_query("SELECT * FROM items where ID between '".$begin."' and '".$eind."'");
?>


In dit geval krijg je wel minder records op een pagina als je er 1 verwijderd uit de database. Daarom zou je ook met volgorde kunnen werken die kun je namelijk bijwerken als je een record verwijderd.

EDIT: wellicht kom je hier verder mee http://php.about.com/od/phpwithmysql/ss/php_pagination.htm
Gewijzigd op 25/10/2012 15:47:52 door Q S
 
Albert de Wit

Albert de Wit

25/10/2012 15:47:13
Quote Anchor link
onderaan mijn code waar de nummertjes worden aangemaakt staat ook dat hij het totaal aantal pagina's controleerd. hoe doe ik dat dan? gewoon nog een query met count(id_item) erin?
 
Q S

Q S

25/10/2012 15:48:50
Quote Anchor link
@Albert zie ook even mijn EDIT, wellicht dat dat je op een idee brengt
 
Kris Peeters

Kris Peeters

25/10/2012 17:10:39
Quote Anchor link
Dit is kritiek op dit script, maar eigenlijk op de meeste pagination scripts die ik op deze site zie.
Zie dit dus als een boodschap aan iedereen (die zich geroepen voelt), en aan niemand in het bijzonder.

Ik zie altijd dat men veel te diep (ver/laag...) in de code nog queries uitvoert.

Nochtans ... Die paginanummering is afhankelijk van slechts twee getallen: het totale aantal items; het aantal items per pagina.
Om deze code generiek te houden (herbruikbaar), zou dit moeten gescheiden zijn.
Je zou moeten komen tot een constructie als:

function paginate($itemsPerPage, $totalItems) {
...
// return de pagination string
}

En die functie moet dus totaal onafhankelijk zijn van de naam van de tabel en velden die je toevallig op deze site nodig hebt.

De juiste formattering van de links zou ik dan via een callback regelen.
Gewijzigd op 25/10/2012 17:31:25 door Kris Peeters
 
Albert de Wit

Albert de Wit

25/10/2012 18:53:04
Quote Anchor link
Oke Kris, stel ik wil:

[eerste pagina] [-2] [-1] [huidige pagina] [+1] [+2] [laatste pagina]

dus stel de huidige pagina is 18 en het totaal aantal pagina's is 29

[1] [16] [17] [18] [19] [20] [29]

index.php?page=18

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

function paginate ($total_items){
    $current_page = $_GET['page'];
    $items_per_page = 15;    

    $begin = $current_page*$items_per_page;

    $query = mysql_query("SELECT * FROM items LIMIT ".$begin.",".$items_per_page);
    
    if ($current_page>=4){
        $minus_2 = $current_page-2;
    }
else{
        $minus_2 = 1;
    }

    $plus_2 = $current_page+2;

    $first = 1;
    $last  = ceil($total_items/$items_per_page);
    
    $numbered_pages = '<a href="index.php?page=1">First</a>';
    for ($i = $minus_2; $i <= $plus_2; $i++){
        $numbered_pages .= '<a href="index.php?page='.$i.'">'.$i.'</a>';
    }

    $numbered_pages .= '<a href="index.php?page='.$last.'">Last</a>';

    return $numbered_pages;
}


?>


Ik heb dit snel even geimproviseerd maar bedoelde je dit?
 
Andy V

Andy V

25/10/2012 19:14:38
Quote Anchor link
als je pagina 1 hebt kan je 1*15 doen om de eerste pagina te bekijken, als je de 2e pagina kijkt krijg je 2*15 = 30 dan doe je 30-15 en dan heb je de itemsn van 15-30

dus

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
<?php
if($_GET['page']){

$page = $_GET['page'];

switch($page):
case (
$page > 1): // vanaf pagina 2 doe je een berekening
$begin = ($page -1) * $items_per_page;
// -1 omdat 1 x 15 = 15, 2 x 15 = 30, 3 x 15 = 45 etc..
//en als pagina 2 zou zijn en je doet 2 x 15 zou je 15 items overslaan


break;

default:
// op pagina 1 begin je bij 1
$begin = 1;
break;
endswitch;

}

$query = mysql_query("SELECT * FROM items LIMIT ".$begin.",".$items_per_page);

?>


dit zou wel moeten werken voor je query


Toevoeging op 25/10/2012 19:16:16:

Andy V op 25/10/2012 19:14:38:
als je pagina 2 hebt kan je 1*15 doen om de tweede pagina te bekijken, als je de 3e pagina kijkt krijg je 2*15 = 30 (tweede pagina)

voor pagina 1 hoef je geen berekening te doen, dan begin je gewoon bij 1

dus

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
<?php
if($_GET['page']){

$page = $_GET['page'];

switch($page):
case (
$page > 1): // vanaf pagina 2 doe je een berekening
$begin = ($page -1) * $items_per_page;
// -1 omdat 1 x 15 = 15, 2 x 15 = 30, 3 x 15 = 45 etc..
//en als pagina 2 zou zijn en je doet 2 x 15 zou je 15 items overslaan


break;

default:
// op pagina 1 begin je bij 1
$begin = 1;
break;
endswitch;

}

$query = mysql_query("SELECT * FROM items LIMIT ".$begin.",".$items_per_page);

?>


dit zou wel moeten werken voor je query
 
Albert de Wit

Albert de Wit

30/10/2012 09:11:00
Quote Anchor link
als iemand hier nog een paginering functie zoekt, ik heb er net 1 in het engels gemaakt, ook voor filter vriendelijke paginering (dus filters in de $_GET variabelen)

Let wel: dit is snel geimproviseerd


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
57
58
<?php
function paginate($items_per_page, $ammount_of_rows){
    if ($ammount_of_rows!=0){
        $ammount_of_pages = ceil($ammount_of_rows/$items_per_page);
    }
else{
        return '';
    }

    
    // current page is $page
    
    if (isset($_GET['page'])){
        $page = $_GET['page'];
    }
else{
        $page = 1;
    }

    // page is 7
    // [<<] [5] [6] [[7]] [8] [9] [>>]
    
    // page is 1
    // [<<] [[1]] [2] [3] [4] [5] [>>]

    
    if ($page>3){
        $min_page = $page-2;
        $max_page = $page+2;
    }
else{
        $min_page = 1;
        $max_page = $min_page+4;
    }

    
    if ($max_page >= $ammount_of_pages){
        $max_page = $ammount_of_pages;
        $min_page = $max_page-4;
    }

    
    $url = $_SERVER['REQUEST_URI'];
        
    if (isset($_GET['page'])){
        $first = str_replace('page='.$_GET['page'],'page=1',$url);
    }

    
    $numbers = '<div class="paginate"><a href="'.$first.'"><<</a>';
    for ($i = $min_page; $i <= $max_page; $i++){
        $new_url = str_replace('page='.$_GET['page'],'page='.$i,$url);
        if ($i == $page){
            $class = 'class="current_page"';
        }
else{
            $class = 'class="other_page"';
        }

        $numbers .= '<a href="'.$new_url.'" '.$class.'>'.$i.'</a>';
    }

    if ($ammount_of_pages!=0){
    $last = str_replace('page='.$_GET['page'],'page='.$ammount_of_pages.'',$url);
    $numbers .= '<a href="'.$last.'">>></a></div>';
    }

    
    return $numbers;    
}

?>
 



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.