Paginanummering

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Digitale Tovenaar Gezocht: Junior Low-code/No-code

Bedrijfsomschrijving Duik mee in een wereld vol innovatieve avonturen waar gegevens en technologie een magische symbiose aangaan! Al meer dan twee decennia lang zijn we de tovenaars achter de schermen die oplossingen creëren voor de meest complexe klantcontactvraagstukken en datagedreven software-uitdagingen. Bij ons draait het om de kracht van samenwerking en groei. We zijn een hechte vriendengroep die samen bergen verzet om elkaar én onze klanten te laten schitteren. Jouw succes is ons succes en we streven ernaar om elkaar naar nieuwe hoogten te tillen, niet voor even, maar voor altijd. We willen dat jij je helemaal thuis voelt in

Bekijk vacature »

C#.NET developer

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Testen en valideren van de ontwikkelde software. Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je gaat aan de slag met diverse technologieën en frameworks. Denk hierbij aan C#, JS frameworks, HTML, CSS, TypeScript,

Bekijk vacature »

SQL Developer

Functie omschrijving Altijd al willen werken bij een snelgroeiend bedrijf, actief in de logistieke sector? Dit is je kans! Ik ben op zoek naar een ervaren SQL Developer in de omgeving Tilburg. Dit bedrijf is gespecialiseerd in in de ontwikkeling van software en maatwerk oplossingen voor het automatiseren van logistieke processen. Klanten zijn o.a. BOL en andere grote distributiecentrums. Jouw taken worden vooral: Verantwoordelijk voor ontwikkelen van stored procedures, voor snelle afhandeling van data; Optimalisatie van de SQL query's en T-SQL query's; Jij gaat je bezig houden met ontwerpen, ontwikkelen en optimaliseren van de MS SQL Databases; In deze functie

Bekijk vacature »

Front-end developer wanted! (Angular, React, Vue.j

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

Bekijk vacature »

Delphi Programmeur

Functie omschrijving Onze opdrachtgever is gespecialiseerd in kantoor-bedrijfssoftware en zit gevestigd in omgeving Numansdorp. Als programmeur ben jij bij dit bedrijf met het volgende bezig; Je vertaalt technische en functionele ontwerpen naar kwalitatieve software. Je ontwikkelt, ontwerpt en test software. Je maakt daarbij veel gebruik met de volgende tools & technologieën: Delphi 10.3 (Rio), QuickReport 6. Je krijgt in deze rol veel vrijheid en verantwoordelijkheid. Je levert projecten van A - Z op, en werkt daarbij projectmatig en gestructureerd. Bedrijfsprofiel Dit bedrijf richt zich op maatwerk software oplossingen. Deze software oplossingen worden ingezet in de financiële branche. Het betreft een

Bekijk vacature »

Junior Front-End Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale oplossingen van Coolblue. Wat doe je als Junior Front-End Developer bij Coolblue? Als Junior Front-End Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen. Op dat moment komt je wil om te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te maken. Je sterk analytisch vermogen komt dan goed van pas! Ook Junior Front-End Developer worden bij Coolblue?

Bekijk vacature »

Senior Cobol Applicatieontwikkelaar

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving In de applicatie ETM

Bekijk vacature »

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Voor een opdrachtgever in omgeving Zoetermeer zijn wij op zoek naar een ontwikkelaar ter versterking van het huidige developers team. Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten

Bekijk vacature »

C#.NET ontwikkelaar

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een C#.NET ontwikkelaar. Je bent verantwoordelijk voor het ontwikkelen van dashboards, webapplicaties en apps voor de eigen IOT-oplossingen. Samen met een vooruitstrevend team van ontwikkelaars en engineers krijgen jullie de opdracht om de sensoren in de apparatuur te scannen en vervolgens de data om te zetten in belangrijke inzichten voor de klanten. Taken en verantwoordelijkheden: Heb jij ideeën over nieuwe technieken die jullie kunnen implementeren? Hier wordt echt naar je geluisterd en gekeken of jouw idee daadwerkelijk ingezet kan worden; Je gaat aan de slag met de

Bekijk vacature »

Front-end Developer

Dit ga je doen Het onderhouden, ontwikkelen en testen van front-end software van diverse klant- en medewerkersapplicaties; Het ontwikkelen van maatwerk front-end oplossingen in Vue.js en participeren in een scrumteam; Mede-verantwoordelijk voor het begeleiden en coachen van drie junior front-end developers; Verantwoordelijk voor code-reviews en het opstellen van de juiste documentatie zoals userstories en API ontwerp; Participeren in diverse projecten t.b.v. optimalisatie van diverse applicaties; Het opzetten van API koppelingen met externe applicaties. Hier ga je werken Betreffende organisatie is gevestigd in de regio van Swifterbant en is al ruim 20 jaar lang bedreven in het ontwikkelen en aanbieden van

Bekijk vacature »

.NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. 50% van jullie werkzaamheden is maatwerk en de overige 50% is

Bekijk vacature »

Senior pega developer

You work on software that makes colleagues and customers happy! Thanks to your IT skills, De Mandemakers Groep really makes a difference for its customers. Do coding, testing and deployments make your heart beat faster? Then apply today as Senior Pega Developer at De Mandemakers Groep! Wat ga je doen? The job title gives it away: You will be developing Pega software. This ranges from technical design, coding and testing to test automation, deployments and bug fixing. Your goal is to continuously improve our systems so that colleagues can work efficiently and customers receive optimal service. You don't have to

Bekijk vacature »

Front-end Developer

Functie omschrijving Wij zijn op zoek naar een Front-end Developer! Als Front-end Developer binnen dit softwarebedrijf ga je de frontends voor zowel je eigen interne projecten als die voor klanten opzetten, onderhouden en uitbreiden. Je zet ideeën om naar mooie successen voor de klanten. Dat is in een notendop wat je gaat doen! Wat kun je verwachten? Je werkt aan de doorontwikkeling van bestaande maatwerkapplicaties. Bijvoorbeeld wanneer de klant de applicatie wil uitbreiden met een nieuwe feature; Samen met het team van backenders en desginers zet je nieuwe ideeën van klanten om naar mooie oplossingen; Je werkt met verschillende frameworks.

Bekijk vacature »

Medior/Senior Front-end Developers gezocht (Utrech

Functie Het team bestaat uit 10+ gespecialiseerde (veel senior) front-end ontwikkelaars en ontwerpers die werken aan projecten voor klanten van verschillende groottes (kan twee jaar bezig zijn met 1 klant). Je helpt klanten met ingewikkelde front-end vraagstukken, hierbij kun je denken aan: UX/UI design, CI/CD, architectuur en integratie met back-end systemen. De werkzaamheden verricht je op locatie bij de klant, dit is vaak in de Randstad. De organisatiestructuur is plat en er heerst een informele sfeer, zo kun je met vragen dus terecht bij de directie. Er wordt veel nadruk gelegd op het bevorderen van persoonlijke ontwikkeling door middel van

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

20/04/2024 17:41:52
 
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.