Paginanummering

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior .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 »

Medior/senior Python developer

Functie Bedrijven komen bij deze organisatie om technische vraagstukken op te lossen en hierin ook tot oplossingen te komen waar ze zelf misschien niet aan gedacht hadden. Jij gaat vanuit je ervaring dus niet alleen hands-on aan de slag met het ontwikkelen, maar zult ook zeker adviseren en proactief meedenken met de klant. Er zijn meerdere lange en/of korte projecten en het type klanten is heel uiteenlopend. Zo kun je terecht komen in een multidisciplinair scrumteam waarin je als Python developer meewerkt, of juist voor een kleiner (Greenfield) project aan de slag gaan waarin je veel breder bezig bent. Door

Bekijk vacature »

Front-end Developer

Onze klant is sinds 2 jaar actief als adviseur en bemiddelaar in de verzekeringsmarkt. Sindsdien proberen zij deze slapende markt flink wakker te schudden. Dit willen zij doen door het bouwen van slimme vergelijkers op hun eigen website en die van partners. Het bedrijf wil continu voorop lopen, zodat consumenten eenvoudig de verzekeringen kunnen vinden die het beste bij ze past. Functieomschrijving Als Front-end Developer werk je aan vergelijkingsmodules die consumenten dagelijks gebruiken bij het vergelijken en afsluiten van verzekeringen. Je vindt het leuk om samen te werken met de product owner, bestaande modules te verbeteren en nieuwe vergelijkers "from

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 »

Fullstack Software Developer

Bedrijfsomschrijving Functieomschrijving Java ontwerpen, bouwen en testen (T-shaped). Als senior ontwikkelaar ben je bekend in zowel de back-end als de frontend van een applicatie. Angular, Continious Delivery / Integration. Een ervaren iemand die de leiding kan nemen, een weg vindt in nieuwe situaties, en in oude applicaties. Initiatiefrijk, bekend met de (technische) omgevingen die we bij duo gebruiken, niet te beroerd om collega’s te helpen. Als senior programmeur in staat om op te treden als lead programmeur. Ondersteunt de testers bij de testautomatisering en minder ervaren programmeurs bij dagelijks werkzaamheden. Dit laatste met name op het gebied van Angular. Achtergrond

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij in één van onze vier scrumteams. Met 30 ontwikkelaars werk jij aan de doorontwikkeling van ons core product. Ook werkt jouw team aan maatwerkoplossingen op aanvraag van de klant en op projectbasis. Wij vinden het erg belangrijk dat onze ontwikkelaars met plezier naar werk gaan. Een deel hiervan ligt uiteraard bij jezelf, als jij ontwikkelen niet leuk vindt, ben jij bij ons echt aan het verkeerde adres. Jouw team bestaat namelijk uit een groep gepassioneerde vakidioten die dit werk doen omdat dit eerst een hobby was! Daarnaast wordt er intern rekening gehouden met

Bekijk vacature »

Lead React Developer

Dit ga je doen Als Lead React Developer zul jij je voornamelijk gaan bezighouden met: Het werken aan tal van uiteenlopende projecten waar gloednieuwe (web)applicaties van scratch af aan ontwikkeld worden met o.a. React (Native) en Drupal; Het aansturen van een team bestaande uit 5-6 talentvolle en gedreven ontwikkelaars; Het adviseren en meedenken over nieuwe (technische) oplossingen en te gebruiken tools/frameworks; Het meedenken over de architectuur en de juiste implementatiebeslissingen maken; De doorontwikkeling van huidige applicaties. Hier ga je werken Als je inderdaad een ervaren Lead React Developer bent die zichzelf graag nog verder wil ontwikkelen dan is het goed

Bekijk vacature »

.NET Developer Senior

Dit ga je doen Het ontwikkelen van backend applicaties in C#; Het maken van vele koppelingen met andere ERP-applicaties zoals JD Edwards en SAP; Je bent (mede) verantwoordelijk voor het opstellen van technisch ontwerpen voor de te ontwikkelen software oplossingen; Je bent gemiddeld 90% van je tijd inhouse oplossingen aan het ontwikkelen en testen. De overige 10% van je tijd ben je bij klanten op locatie om oplossingen te implementeren, klanten te begeleiden en de software verder te innoveren; Naast het zelfstandig ontwikkelen van software oplossingen ben je ook bezig met het waarborgen van je contacten bij de klant, het

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je werkt mee aan de migratie naar .NET 6; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Zij zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

Medior Java developer (fullstack)

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 »

Cloud Developer

Cloud Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Front-end Developer (HTML/CSS, Angular/React/Vue,

Functie Je zal aan de slag gaan in een klein, hecht team met front-end development experts die de ambitie delen mooi werk te leveren. Samen met hen zal je werken aan het gebruiksvriendelijk en interactief maken van complexe webapplicaties, websites en mobile apps. Je levert klanten wat ze nodig hebben terwijl je actief aan jezelf blijft werken met de ondersteuning vanuit je werkplek. Talen als Javascript programmeer jij vloeiend en je hebt kennis van frameworks als React en Angular. Je zou je het liefst nog veel meer ontwikkelen in verschillende front-end talen. Deze kennis deel je graag met je collega’s,

Bekijk vacature »

C# developer

Functie Als ervaren Software Engineer wordt jij verantwoordelijk voor het bedenken en ontwikkelen van technische (maatwerk) oplossingen voor onze klanten en dit samen met de klant af te stemmen. Jij wordt o.a. verantwoordelijk voor de doorontwikkeling het software pakket welke voor ons enorm belangrijk is. Dit pakket zorgt er namelijk voor dat wij complete productielijnen kunnen aansturen en monitoren. Daarnaast heb jij actief contact met onze hoofdvestiging om het software achter een van onze systemen te verbeteren en te herschrijven. Momenteel zijn onze C# applicaties geschreven met o.a. Winforms. Echter hebben wij de actieve ambitie om dit te gaan herschrijven

Bekijk vacature »

Android developer

De functie Schiphol is een plek om te reizen, te verblijven en te werken. Door middel van data en technologie richten we op al deze gebieden het leef- en werkklimaat optimaal in en zorgen we voor een slimmere en efficiëntere operatie. Wij ontwikkelen nieuwe producten en diensten vanuit de wensen en behoeften van onze klanten, voorspellen passagier flows en testen digitale oplossingen om rijen en andere pijnpunten in het proces te verminderen. Met slimme feedback van sensortechnologie maken we zelfs data van toiletten en stoelen inzichtelijk en bruikbaar. Het Commercial Platform bestaat uit multidisciplinaire teams met een end-2-end verantwoordelijkheid voor

Bekijk vacature »

Front-end Developer

Do you want to work with the latest technologies on the development of new systems and applications? Create elegant interfaces using VueJS for thousands of users? Get moving and strengthen Nederlandse Loterij as a Front-end Developer. Thanks to your efforts, our services are always presented in style. As a Front-end Developer you are responsible for website development and improving customer experience based on data analyze. In this way, you directly contribute to a happy, healthy and sporty Netherlands. As a Front-end Developer you score by: Writing elegant, testable components without side-effects to provide functionality to the users Website development, adding

Bekijk vacature »
Jan Jaap van der Sluijs

Jan Jaap van der Sluijs

26/06/2012 11:03:46
Quote Anchor link
Hallo,

Het onderstaande script gebruik ik op een website voor paginanummering.


Echter is het volgens mij niet mogelijk om de query met GROUP BY uit te voeren. Heeft iemand een oplossing hoe dit wel gaat werken?

Bedankt.


--------------------------------------------------------------------------------

PagedQuery.class.php

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<?php
/**
 * Used for building query's witch need pagination.
 */

class PagedQuery
{
    /** @var integer Total number of records */
    var $total;
    /** @var integer Record length of a page */
    var $pageSize;
    /** @var integer Total pages */
    var $pages;
    /** @var string Current requested page */
    var $currentPage;
    /** the variable in the url to indicate the current page. Defaul = 'page' */
    var $pageVar;

    /**
    * Construct a PagedQuery. The $query variable will be replaced by a new
    * query wich will allow pagination.
    * @param string $query Sql select query
    * @param integer $totalRows Number of rows to show on a page
    * @param integer $pageVar (optional) The used variable for pagination
    */

    function __construct(&$query, $totalRows, $pageVar = "page")
    {
    
        // set pageVar
        $this->pageVar = $pageVar;
        
        // Get the current page
        if (isset($_GET[$pageVar]) && is_numeric($_GET[$pageVar]))
        {

            $currentPage = $_GET[$pageVar];
        }

        else
        {
            $currentPage = 1;
        }

        
        $this->pageSize = $totalRows;
        $this->currentPage = $currentPage;
        
        $query = strtolower($query);
        // Split the query to create a new count query
        list($queryStart, $queryEnd) = explode(" from ", $query, 2);
        
        // Create the count query
        if (substr_count($queryEnd,"group by ",1) == 1)
            $query = "select count(*) from (select count(*) from " . $queryEnd . ") as t1";
        else
            $query = "select count(*) from " . $queryEnd;
        
        // Get the total rows
        $result = mysql_query($query);
        $row = mysql_fetch_row($result);
        $this->total = $row[0];
        
        // bereken het aantal pagina's
        $this->pages =  ceil($this->total / $totalRows);
        
        // Create the new query
        $offset = ($currentPage - 1) * $totalRows;
        $query = $queryStart . " from " . $queryEnd . " limit " . $offset . "," . $totalRows . " ";

    }

    
    /**
     * Get the base link from the requested url current
     * Used to build the page links
     */

    public function getBaseUrl()
    {

        
        if (!isset($_GET[$this->pageVar]))
        {

            if ($_SERVER['QUERY_STRING'] == "")
                return "?" . $this->pageVar . "=";
            else
                return "?" . $_SERVER['QUERY_STRING'] . "&" . $this->pageVar . "=";
        }

        else
        {
            // replace and append the query string
            if (sizeOf($_GET) <= 1)
            {

                return "?" . $this->pageVar . "=";
            }

            else
            {
                // try to replace the var
                $newQueryString = str_replace("&" . $this->pageVar . "=" . $_GET[$this->pageVar], "", $_SERVER['QUERY_STRING']);
                // try to replace the first var
                $newQueryString = str_replace($this->pageVar . "=" . $_GET[$this->pageVar], "", $newQueryString);
                // correct & if this is the first char
                if(substr($newQueryString,0,1) == "&")
                {

                    $newQueryString = substr($newQueryString,1,strlen($newQueryString)-1);
                }

                
                return "?" . $newQueryString . "&" . $this->pageVar . "=";
            }
        }
        
    }

    
    /**
     * Get the url for the first page,
     * without the page infor in the url.
     * This will prevent urls with duplicate content
     * for search engine optimization.
     */

    public function getFirstUrl()
    {

        if (isset($_GET[$this->pageVar]))
        {

            // try to replace the var
            $newQueryString = str_replace("&" . $this->pageVar . "=" . $_GET[$this->pageVar], "", $_SERVER['QUERY_STRING']);
                // try to replace the first var
            $newQueryString = str_replace($this->pageVar . "=" . $_GET[$this->pageVar], "", $newQueryString);
            // strip off last character for correct url
            return "?" . $newQueryString;
        }

        else
        {
            if ($_SERVER['QUERY_STRING'] != "")
            {

                return "?" . $_SERVER['QUERY_STRING'];
            }

            else
                return ".";
        }
    }


    /**
     * Shorcut function for calling the static
     * method pageLinks from class Pagination
     */
    
    public function pageLinks()
    {

        return Pagination::pageLinks($this);
    }

    
    /**
     * Shorcut function for calling the static
     * method simplePageLinks from class Pagination
     */
    
    public function simplePageLinks()
    {

        return Pagination::simplePageLinks($this);
    }

}

?>



Pagination.class.php

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?php
/**
 * Used for building query's witch need pagination.
 */

class Pagination
{
    
    /**
     * Simpel layout for page numbering
     */

    public static function simplePageLinks($pagedQuery)
    {

        $return = "";
        $baseLink = $pagedQuery->getBaseUrl();
        
        if ($pagedQuery->pages > 1)
        {

            for ($i=1;$i<$pagedQuery->pages + 1;$i++)
            {

                if ($i==1)
                    $return .= " <a class=\"page\" href=\"" . $pagedQuery->getFirstUrl() . "\">";
                else
                    $return .= " <a class=\"page\" href=\"" . $baseLink . $i . "\">";
                    
                if ($i == $pagedQuery->currentPage)
                    $return .= "<b>$i</b>";
                else
                    $return .= "$i";
                $return .= "</a> ";
            }
        }
    
        return $return;
    }

    
        
    /**
     * Simpel layout for page numbering
     */

    function pageLinks($pagedQuery)
    {

        $iconLocation = "images/icons";
        $baseLink = $pagedQuery->getBaseUrl();
        $firstLink = $pagedQuery->getFirstUrl();
        
        $return = "";
        
        $return .= "<table class=\"pagination\"><tr>";
        
        if ($pagedQuery->currentPage > $pagedQuery->pages)
            return "";
        
        $count = 10; // max 10 links
        
        if ($pagedQuery->currentPage != 1)
        {

            $return .= "<td><a class=\"no_pagination\" href=\"" . $firstLink . "\"><img src='$iconLocation/page-first.gif'></a></td>";
            
            $return .= "<td><a class=\"no_pagination\" href=\"";
            
            if ($pagedQuery->currentPage - 1 == 1)
            {

                $return .= $firstLink;
            }

            else
            {
                $return .= $baseLink . ($pagedQuery->currentPage - 1);
            }

            
            $return .= "\"><img src='$iconLocation/page-prev.gif'></a></td>";
        }

        else
        {
            $return .= "<td><img src='$iconLocation/page-first-disabled.gif'></td>";
            
            $return .= "<td><img src='$iconLocation/page-prev-disabled.gif'></td>";
        }

        
        // more then standard 5 left
        if ($pagedQuery->currentPage + 4 > $pagedQuery->pages)
            $leftCalcCount = 9 - ($pagedQuery->pages - $pagedQuery->currentPage);
        else
            $leftCalcCount = 5;
        
        // Linker links
        for ($i=$pagedQuery->currentPage - $leftCalcCount;$i<$pagedQuery->currentPage + 1;$i++)
        {

            if ($i < 1)
                $i = 1;
            
            $return .= "<td><a ";
            
            // add class
            if ($i == $pagedQuery->currentPage)
                $return .= "class=\"current\" ";
            
            if ($i == 1)
            {

                $return .= "href=\"" . $firstLink . "\">";
            }

            else
            {
                $return .= "href=\"" . $baseLink . $i . "\">";
            }
  
                
            if ($i == $pagedQuery->currentPage)
                $return .= "<b>$i</b>";
            else
                $return .= "$i";
            $return .= "</a></td>";
            
            $count--;
        }

        
        // Rechter links
        for ($i=$pagedQuery->currentPage + 1;$i< $pagedQuery->currentPage + $count + 1;$i++)
        {

            if ($i < 1)
                $i = 1;
                
            if ($i > $pagedQuery->pages)
                break;    
            
            $return .= "<td><a href=\"" . $baseLink . $i . "\">";
            if ($i == $pagedQuery->currentPage)
                $return .= "<b>$i</b>";
            else
                $return .= "$i";
            $return .= "</a></td>";
        }
        
        
        if ($pagedQuery->currentPage != $pagedQuery->pages)
        {

            $return .= "<td><a class=\"no_pagination\" href=\"" . $baseLink . ($pagedQuery->currentPage + 1) . "\"><img src='$iconLocation/page-next.gif'></a></td>";
            
            $return .= "<td><a class=\"no_pagination\" href=\"" . $baseLink  . $pagedQuery->pages . "\"><img src='$iconLocation/page-last.gif'></a></td></td>";
        }

        else
        {
            $return .= "<td><img src='$iconLocation/page-next-disabled.gif'></td>";
            
            $return .= "<td><img src='$iconLocation/page-last-disabled.gif'></td>";
        }

        
        $return .= "</tr></table>";
        
        return $return;
    }
}

?>



Het script

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$query
= "SELECT * FROM TABEL";
$totalRows = 9; // Max rows on a page
$PagedQuery = new PagedQuery($query, $totalRows);

$result = mysql_query($query);
while($row = mysql_fetch_row($result))
{

    echo $row[];
}


$PagedQuery->pageLinks();
?>
Gewijzigd op 26/06/2012 11:07:59 door Jan Jaap van der Sluijs
 
PHP hulp

PHP hulp

27/05/2026 11:13:22
 
John Cena

John Cena

26/06/2012 11:11:42
Quote Anchor link
Pff, kun je ook alleen relevante code plaatsen...?
Wat gaat er fout, wat is de foutmelding?
 
Jeroen VD

Jeroen VD

26/06/2012 11:38:01
Quote Anchor link
je zegt dat je query niet goed werkt, maar dit is de meest basis query. (apart dat je niet met * moet selecteren, maar alle kolommen moet opnoemen) waarom zou je willen groupen?
 
Jan Jaap van der Sluijs

Jan Jaap van der Sluijs

26/06/2012 11:45:25
Quote Anchor link
De bijgevoegde query is alleen voor het voorbeeld. De echte versie bestaat uit INNER JOINS en daarbij word er ook gebruik gemaakt van GROUP BY.

In de classes kun je zien dat de query gesplitst word, vervolgens werkt GROUP BY niet.
Gewijzigd op 26/06/2012 14:22:36 door Jan Jaap van der Sluijs
 
Jan Jaap van der Sluijs

Jan Jaap van der Sluijs

02/07/2012 08:59:21
Quote Anchor link
Als iemand een alternatief heeft op het gebied van paginanummering, dan houd ik me aanbevolen.
 



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.