Echo result = php query, kan dit?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sebastiaan van Mierlo

Sebastiaan van Mierlo

31/07/2016 23:11:23
Quote Anchor link
Op mijn website wordt code uit mijn database getoond. Doormiddel van "tags" weet mijn website precies wat hij waar moet tonen. Dit werkt geweldig. Nu geef ik over het algemeen html code weer. Ik heb in de database in de tabel een veld zitten die altijd via de result weergegeven wordt. afhankelijk van variabelen, gebruik ik paginatie, etc.

Op mijn homepage, heb ik dat niet. Daar komt het result alleen als volgt naar voren:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
                    } else {
                        while($row = mysql_fetch_array($result))
                        {

                        echo $row['inhoud'];
                        }
                    }

                ?>



De 'inhoud' , dat wil ik eigenlijk een slim stukje php code laten zijn, die telkens een random resultaat geeft. Dit is de volgende code:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
                        include_once('fGet_Mvotm.php');
                        $UID = fGet_Mvotm();
                        $select = "SELECT * FROM ffm_mv WHERE uid =  '" . $UID . "' ORDER BY nummer DESC";
                        $resultaat = mysql_query($select) or die (mysql_error());
                        $regel = mysql_fetch_array($resultaat);
                        
                        echo "";    
                        echo $regel['inhoud'],"<br />\n";                
                        echo "";

                    ?>



Als ik deze code hard in mijn page zet, werkt dit perfect, maar als een result werkt dit niet.

Nu is dus mijn vraag, is het überhaupt mogelijk om een soort "echo result" in een "echo result" te stoppen? Hoe zou ik dit kunnen oplossen, anders zou ik het idee moeten laten varen.

Ik ben zelf geen PHP expert, dus nieuwe code verzinnen is lastig voor mij zonder goede voorbeelden. De manier waarop ik werk zie ik weinig in voorbeeld op sites voorbijkomen. Heb al aardig wat afgestruind op google. en ja, ik weet dat ik de code nog moet bijwerken naar nieuwe php, daar wordt al aan gewerkt.

Alvast bedankt
Gewijzigd op 31/07/2016 23:13:10 door Sebastiaan van Mierlo
 
PHP hulp

PHP hulp

27/04/2024 04:14:34
 
- Ariën  -
Beheerder

- Ariën -

31/07/2016 23:32:02
Quote Anchor link
Ik heb je topic al enkele keren doorgelezne, maar ik snap je vraag/probleem niet echt.

Wel valt het me op dat je een lege echo output op lijn 8 en 10, waarom eigenlijk ;-)
Verder is een die() in een foutafhandeling verre van netjes. Los dit liever op met een if-else, of nog mooier (maar minder simpeler voor een beginner) met een OO-manier waarbij je de MySQLi-class extend en de query-functie uitbeidt met foutafhandeling.
 
Sebastiaan van Mierlo

Sebastiaan van Mierlo

31/07/2016 23:58:55
Quote Anchor link
Ik heb een database met het volgende record:

Afbeelding

Dit komt als resultaat terug in de eerste code. Echter op de website ziet je dan niets.

terwijl, als ik de code hard op mijn page zet (wat dus niet wenselijk is), krijg ik wel resultaat.. namelijk:
Afbeelding

Het stukje code zorgt ervoor dat een video en wat html naar voren wordt gehaald. via de php, laat ik dat randomizen, het resultaat van die randomizer,wil ik dus tonen op mijn homepage, maar niet op de andere pagina's.. en dat los ik op door het in de SQL database te zetten.

Maar het result kan prima html zijn, maar zodra in het result php-code zit, werkt het niet meer..
Gewijzigd op 01/08/2016 00:07:24 door Sebastiaan van Mierlo
 
- Ariën  -
Beheerder

- Ariën -

01/08/2016 00:13:33
Quote Anchor link
Als je PHP wilt uitvoeren vanuit PHP (ook al haal je het uit de database op) dan moet je eval() gebruiken. maar denk er eens héél goed na of je dit echt wilt? Het is zeer onveilig, en wordt erg hard afgeraden.

Maak anders liever functies die diverse soorten data ophalen, en zorg ervoor dat je die met placeholder-tags zoals bijv. [content], [map], [address] etc.. aan de juiste functie koppelt. Kijk eens naar preg_replace_callback. Dan kan er ook niks misgaan, omdat de code gewoon al vaststaat, en niet opeens aangepast kan worden in je database.
Gewijzigd op 01/08/2016 00:14:37 door - Ariën -
 
Sebastiaan van Mierlo

Sebastiaan van Mierlo

01/08/2016 00:36:34
Quote Anchor link
Okay, thx. Ik zal daar naar kijken, al is wel het voorbeeld waar naar verwezen op de pagina weer iets compleet anders. Dus dat wordt nog wel een uitdaging..

en hoeverre is eval() een gevaar. Ik heb geen logins voor anderen op mijn database. er wordt alleen data uitgelezen. toevoegen van data gebeurt dus niet.

Hoe zou ik mijn code om moeten zetten, zodat deze wel getoond kan worden? Dan gaat het alleen maar om onderstaande code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
                        include_once('fGet_Mvotm.php');
                        $UID = fGet_Mvotm();
                        $select = "SELECT * FROM ffm_mv WHERE uid =  '" . $UID . "' ORDER BY nummer DESC";
                        $resultaat = mysql_query($select) or die (mysql_error());
                        $regel = mysql_fetch_array($resultaat);
                        
                        echo $regel['inhoud'],"<br />\n";                
                        
                    ?>
 
- Ariën  -
Beheerder

- Ariën -

01/08/2016 00:40:52
Quote Anchor link
Ik zou liever afzien van eval() zelfs, ook de manual van PHP.net haalt het al aan dat het gevaarlijk is. Er hoeft maar één iemand via een injection, of een onbetrouwbare werknemer de code aan te passen en je site ligt open en bloot voor diegene met gevolgen van dien.

PHP-code hoort daarom ook op applicatieniveau, en niet op dataniveau.

En verder zou ik ook maar eens kijken naar MySQLi of PDO ;-)
Gewijzigd op 01/08/2016 00:45:08 door - Ariën -
 
Sebastiaan van Mierlo

Sebastiaan van Mierlo

01/08/2016 00:58:30
Quote Anchor link
ik ben een particulier en deze website is mijn hobby.. :) dus die onbetrouwbare werknemer ben ik zelf.
maar prima, ik heb liever ook veilige code. Er zit veel tijd in mijn website, dus als dat zo gesloopt kan worden, liever niet.

Wat betreft het MySQLi verhaal.. dat loopt al :)
loop daar nog tegen wat dingetjes aan.., heeft met mijn paginatie-code te maken.., maar dat komt wel goed :)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/08/2016 08:05:05
Quote Anchor link
Sebastiaan van Mierlo op 01/08/2016 00:36:34:
Hoe zou ik mijn code om moeten zetten, zodat deze wel getoond kan worden? Dan gaat het alleen maar om onderstaande code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
                        include_once('fGet_Mvotm.php');
                        $UID = fGet_Mvotm();
                        $select = "SELECT * FROM ffm_mv WHERE uid =  '" . $UID . "' ORDER BY nummer DESC";
                        $resultaat = mysql_query($select) or die (mysql_error());
                        $regel = mysql_fetch_array($resultaat);
                        
                        echo $regel['inhoud'],"<br />\n";                
                        
                    ?>


1. maak er een functie van
2. vervang de code in je database voor iets als [random_video]
3. scan de data uit je database op dit keyword.
4. vervang het keyword voor de output van je functie

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

function getRandomVideo($UID) {
    $UID = fGet_Mvotm();
    $select = "SELECT * FROM ffm_mv WHERE uid =  '" . $UID . "' ORDER BY nummer DESC";
    $resultaat = mysql_query($select) or die (mysql_error());
    $regel = mysql_fetch_array($resultaat);
                        
    return $regel['inhoud'];
}

      
include_once('fGet_Mvotm.php');

// snippet voor keyword vervangen voor output

// $body komt normaal gesproken uit je database

$body = '<h1>Random video</h1>[random_video]<br>bla bla bla';

$body = str_replace('[random_video]', getRandomVideo($UID), $body);

// debug
echo $body;
?>
Gewijzigd op 01/08/2016 08:11:39 door Frank Nietbelangrijk
 
Thomas van den Heuvel

Thomas van den Heuvel

01/08/2016 13:58:02
Quote Anchor link
Quote:
Als ik deze code hard in mijn page zet, werkt dit perfect, maar als een result werkt dit niet.

Wat is daar op tegen dan?

Ik weet niet of het "beter" is om hier een functie van te maken omdat je dit maar voor één ding gebruikt eigenlijk.

Wat zit er in fGet_Mvotm.php en kun je de resterende code daar niet ook gewoon in stoppen zodat je simpelweg kunt volstaan met het enkel includen van fGet_Mvotm.php? Zodat alle beslissingen besloten zijn in deze include zelf en hier geen informatie uitbungelt. Zoiets dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
    // ... yadda
} else {
    include 'showrandomvideo.php';
}

?>

Dat lijkt mij het simpelst.
 
Sebastiaan van Mierlo

Sebastiaan van Mierlo

01/08/2016 15:25:01
Quote Anchor link
Heren, wat fijn dit. Dit geeft me even stof tot nadenken. Ik ga hiermee aan de slag. Vooral dat laatste, als dat werkt, zou prachtig zijn natuurlijk.

in de fget_mvotm zitten alle unieke ID's van "muziek-video's" die ik op mijn website heb staan. o.b.v. die unieke code weet trek ik de bijbehorende html-code van de muziekvideo erbij.

"$UID" is dus het resultaat nu uit de fget_mvotm.php
Als het resultaat uit die fget_mvotm.php de html-code is, dan is de echo alleen maar die htmlcode, en dat kan ik dan waarschijnlijk wel in de database werkend krijgen.

Ik kan de code niet op de pagina vast zetten, omdat afhankelijk van waar ik naar toe navigeer, ik andere data laat zien.

website is trouwens http://www.finalfrontiermedia.nl , niet om reclame te maken, maar dan snap je misschien wat ik bedoel. Als in het midden-rechts staat niet vast op de page, alleen het menu links, boven, de afbeeldingen onder en boven en de links onderin. De rest is flexibel. Dit stukje code wil ik ook flexibel houden.

Ik ga er mee spelen, mocht je hier nog specifieke aanwijzingen in hebben, graag.
Wat betreft het document "fGet_Mvotm.php" hier staat het volgende in (heb het ingekort):

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
<?php
function fGet_Mvotm() {
    
$mvotm[] = '007bashir';
$mvotm[] = '13yearoldself';
$mvotm[] = 'abinitotrailer';
$mvotm[] = 'absolutionhigh';
$mvotm[] = 'adiemus';
$mvotm[] = 'alcoholwarning';
$mvotm[] = 'alliknow';
$mvotm[] = 'alliwant';
$mvotm[] = 'wonderfulworld';
$mvotm[] = 'yellowsubmarine_e';
$mvotm[] = 'youcantmakelove';
$mvotm[] = 'youlooksofine';
$mvotm[] = 'youmyheart';
$mvotm[] = 'yourebeautiful';
$mvotm[] = 'yourgame';

    $rand = mt_rand(0, count($mvotm) - 1);
    
    $sHTML_Output = "$mvotm[$rand]";
    
    return $sHTML_Output;
}

?>
 
Ivo P

Ivo P

02/08/2016 15:11:45
Quote Anchor link
Gevaar zit niet zo zeer in onbetrouwbare medewerkers, maar ook in onhandigheid van zo'n medewerker.

Een typfoutje is via het cms zo in de code geplaatst.

Verder wordt de code ondoorzichtig: in het aangehaalde voorbeeld hierboven staat een var $regel.
Stel dat er in de rest van de code van het script ook een $regel voorkomt, dan zou die zo maar overschreven kunnen worden....
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/08/2016 18:54:55
Quote Anchor link
Ivo P op 02/08/2016 15:11:45:
Gevaar zit niet zo zeer in onbetrouwbare medewerkers, maar ook in onhandigheid van zo'n medewerker.


En ook jijzelf of wij kunnen soms een keer "niet zo handig" bezig zijn...
Voorkomen is altijd beter dan genezen.

Zelf ben ik ook niet zo voor het "overal in de code" gebruiken van include(). Ik hou dat zelf liever voor het declareren van functies of nog liever classes aan het begin van je "landingspagina". Met landingspagina bedoel ik het bestand dat als eerste door de webbrowser ingeladen wordt bij een request. Een uitzondering kan zijn daar waar je HTML of templates gaat laden, de zogenoemde 'view'. (Als je geen idee hebt waar ik het over heb Google dan eens op MVC.)
Dit in het kader van ondoorzichtige code wat Ivo al aanhaalde.
 
Sebastiaan van Mierlo

Sebastiaan van Mierlo

02/08/2016 19:49:06
Quote Anchor link
laten we niet overdrijven, dit is een eenmans hobby website..
geen cms. geen onbetrouwbare of onhandige medewerkers. de code heb ik helemaal onder controle die er in zit en niemand anders past dat aan. Ondoorzichtig is voor mij dus niet mogelijk.

Wat betreft mvc, zou dus zijn. Ik heb de data (bron informatie) in mijn database. Met het "get_document" zou ik de berekeningen kunnen doen, en mijn index.php zorgt alleen voor de weergave :)

Nou ja, dat werd geopperd door jou (Frank) dus daar ga ik naar kijken. Samen met de rest, en kijken wat het resultaat wordt.
 
Ivo P

Ivo P

03/08/2016 10:18:35
Quote Anchor link
"geen onbetrouwbare of onhandige medewerkers."

Ik bedoelde, zoals Frank ook verduidelijk, ook jou zelf. Nu weten we allemaal dat we zelf nooit fouten maken, maar het zou natuurlijk wel zomaar kunnen.

1 typfoutje in je scriptje in de database kan dan zomaar tot rare meldingen op je scherm leiden, of misschien wel een lek.
En aangezien je kennelijk at random iets wilt tonen, is het nog maar de vraag of de fout inderdaad optreedt als je het test.

Bottom line: het kan wel en het kan ook goed gaan, maar qua onderhoudbaarheid wordt het lastig aangezien je bij aanpassingen in je script of in je code in de database steeds bewust moet blijven dat die 2 samen moeten blijven werken.

Soms ontkom je inderdaad niet of moeilijk aan het gebruik van eval(). Maar wees je steeds bewust van de beperkingen van die functie.

Quote:
If eval() is the answer, you're almost certainly asking the
wrong question. -- Rasmus Lerdorf, BDFL of PHP
 
Sebastiaan van Mierlo

Sebastiaan van Mierlo

04/08/2016 16:00:55
Quote Anchor link
Heren, mag ik jullie allemaal bedanken voor de input, maar ik heb, al zeg ik het zelf, toch een geniaal inzicht gekregen. Eigenlijk door de opmerking "kan je het niet gewoon op de pagina zelf doen".. ik heb er een "if-statement" voor gezet, hierdoor werkt het perfect.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
if ($pagina == 'home') {
                        include_once('fGet_Mvotm.php');
                        $UID = fGet_Mvotm();
                        $select = "SELECT * FROM ffm_mv WHERE uid =  '" . $UID . "' ORDER BY nummer DESC";
                        $resultaat = mysql_query($select) or die (mysql_error());
                        $regel = mysql_fetch_array($resultaat);
                        
                        echo "<html><div align='left' class='mv'>&nbsp;</div></html>";
                        echo "<html><br><h2>Random music video</h2><div align='left'>Here you can find a random music video. Everytime you reload the page a different music video will appear. The following music video, is the music video of the moment:</div></html>";    
                        echo $regel['inhoud'],"<br />\n";                
                        echo "";
                    }
Gewijzigd op 04/08/2016 16:30:48 door Sebastiaan van Mierlo
 
Ivo P

Ivo P

04/08/2016 16:48:23
Quote Anchor link
gebruikelijk is het om 1 <html> en 1 <html> tag te hebben op een pagina. Hooguit in een frame/iframe zou er nog een kunnen, maar dit lijkt met niet de bedoeling.
 
Sebastiaan van Mierlo

Sebastiaan van Mierlo

04/08/2016 18:03:31
Quote Anchor link
Hallo Ivo,

Bedankt ik heb het gefixed.

Ik loop eigenlijk nog wel tegen een ander probleem aan.
Ik heb nu de code goed, heb ook de code omgezet naar de nieuwe PHP 5 standaard. Op mijn website gaat dit goed, maar voor mijn paginatie gaat dit niet goed. Hiervoor heb ik een apart script gebruikt met de volgende code. Zouden jullie kunnen helpen om deze aan te passen.

Website draait op de volgende versies:
PHP 5.6.17
MySQL 5.5.38


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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
<?php
/**
 * PHPSense Pagination Class
 *
 * PHP tutorials and scripts
 *
 * @package        PHPSense
 * @author        Jatinder Singh Thind
 * @copyright    Copyright (c) 2006, Jatinder Singh Thind
 * @link        http://www.phpsense.com
 */

// ------------------------------------------------------------------------


class PS_Pagination {

    var
$php_self;
    var
$rows_per_page = 5; //Number of records to display per page
    var $total_rows = 0; //Total number of rows returned by the query
    var $links_per_page = 10; //Number of links to display per page
    var $append = ""; //Paremeters to append to pagination links
    var $query = "";  
    var
$debug = false;
    var
$conn = false;
    var
$page = 1;
    var
$max_pages = 0;
    var
$offset = 0;

    /**
     * Constructor
     *
     * @param resource $connection Mysql connection link
     * @param string $query SQL query to paginate. Example : SELECT * FROM users
     * @param integer $rows_per_page Number of records to display per page. Defaults to 10
     * @param integer $links_per_page Number of links to display per page. Defaults to 5
     * @param string $append Parameters to be appended to pagination links
     */

    
    function PS_Pagination($connection, $query, $rows_per_page = 5, $links_per_page = 10, $append = "") {

    $this->conn = $connection;
        $this->sql = $query;
        $this->rows_per_page = (int)$rows_per_page;
        if (intval($links_per_page ) > 0) {
            $this->links_per_page = (int)$links_per_page;
        }
else {
            $this->links_per_page = 5;
        }

        $this->append = $append;
        $this->php_self = htmlspecialchars($_SERVER['PHP_SELF'] );
        if (isset($_GET['page'] )) {
            $this->page = intval($_GET['page'] );
        }
    }

    
    /**
     * Executes the SQL query and initializes internal variables
     *
     * @access public
     * @return resource
     */

    function paginate() {
        //Check for valid mysql connection
        if (! $this->conn || ! is_resource($this->conn )) {
            if ($this->debug)
                echo "MySQL connection missing<br />";
            return false;
        }

        
        //Find total number of rows
        $all_rs = @mysql_query($this->sql );
        if (! $all_rs) {
            if ($this->debug)
                echo "SQL query failed. Check your query.<br /><br />Error Returned: " . mysql_error();
            return false;
        }

        $this->total_rows = mysql_num_rows($all_rs );
        @
mysql_close($all_rs );
        
        //Return FALSE if no rows found
        if ($this->total_rows == 0) {
            if ($this->debug)
                echo "Query returned zero rows.";
            return FALSE;
        }

        
        //Max number of pages
        $this->max_pages = ceil($this->total_rows / $this->rows_per_page );
        if ($this->links_per_page > $this->max_pages) {
            $this->links_per_page = $this->max_pages;
        }

        
        //Check the page value just in case someone is trying to input an aribitrary value
        if ($this->page > $this->max_pages || $this->page <= 0) {
            $this->page = 1;
        }

        
        //Calculate Offset
        $this->offset = $this->rows_per_page * ($this->page - 1);
        
        //Fetch the required result set
        $rs = @mysql_query($this->sql . " LIMIT {$this->offset}, {$this->rows_per_page}" );
        if (! $rs) {
            if ($this->debug)
                echo "Pagination query failed. Check your query.<br /><br />Error Returned: " . mysql_error();
            return false;
        }

        return $rs;
    }

    
    /**
     * Display the link to the first page
     *
     * @access public
     * @param string $tag Text string to be displayed as the link. Defaults to 'First'
     * @return string
     */

    function renderFirst($tag = 'First') {
        if ($this->total_rows == 0)
            return FALSE;
        
        if ($this->page == 1) {
            return "$tag ";
        }
else {
            return '<a href="' . $this->php_self . '?page=1&' . $this->append . '">' . $tag . '</a> ';
        }
    }

    
    /**
     * Display the link to the last page
     *
     * @access public
     * @param string $tag Text string to be displayed as the link. Defaults to 'Last'
     * @return string
     */

    function renderLast($tag = 'Last') {
        if ($this->total_rows == 0)
            return FALSE;
        
        if ($this->page == $this->max_pages) {
            return $tag;
        }
else {
            return ' <a href="' . $this->php_self . '?page=' . $this->max_pages . '&' . $this->append . '">' . $tag . '</a>';
        }
    }

    
    /**
     * Display the next link
     *
     * @access public
     * @param string $tag Text string to be displayed as the link. Defaults to '>>'
     * @return string
     */

    function renderNext($tag = '&gt;&gt;') {
        if ($this->total_rows == 0)
            return FALSE;
        
        if ($this->page < $this->max_pages) {
            return '<a href="' . $this->php_self . '?page=' . ($this->page + 1) . '&' . $this->append . '">' . $tag . '</a>';
        }
else {
            return $tag;
        }
    }

    
    /**
     * Display the previous link
     *
     * @access public
     * @param string $tag Text string to be displayed as the link. Defaults to '<<'
     * @return string
     */

    function renderPrev($tag = '&lt;&lt;') {
        if ($this->total_rows == 0)
            return FALSE;
        
        if ($this->page > 1) {
            return ' <a href="' . $this->php_self . '?page=' . ($this->page - 1) . '&' . $this->append . '">' . $tag . '</a>';
        }
else {
            return " $tag";
        }
    }

    
    /**
     * Display the page links
     *
     * @access public
     * @return string
     */

    function renderNav($prefix = '<span class="page_link">', $suffix = '</span>') {
        if ($this->total_rows == 0)
            return FALSE;
        
        $batch = ceil($this->page / $this->links_per_page );
        $end = $batch * $this->links_per_page;
        if ($end == $this->page) {
            //$end = $end + $this->links_per_page - 1;
        //$end = $end + ceil($this->links_per_page/2);

        }
        if ($end > $this->max_pages) {
            $end = $this->max_pages;
        }

        $start = $end - $this->links_per_page + 1;
        $links = '';
        
        for($i = $start; $i <= $end; $i ++) {
            if ($i == $this->page) {
                $links .= $prefix . " $i " . $suffix;
            }
else {
                $links .= ' ' . $prefix . '<a href="' . $this->php_self . '?page=' . $i . '&' . $this->append . '">' . $i . '</a>' . $suffix . ' ';
            }
        }

        
        return $links;
    }

    
    /**
     * Display full pagination navigation
     *
     * @access public
     * @return string
     */

    function renderFullNav() {
        if ($this->total_rows <= 5){
            return FALSE;
        }
else {
        return $this->renderFirst() . '&nbsp;' . $this->renderPrev() . '&nbsp;' . $this->renderNav() . '&nbsp;' . $this->renderNext() . '&nbsp;' . $this->renderLast();
        }
    }

    
    /**
     * Set debug mode
     *
     * @access public
     * @param bool $debug Set to TRUE to enable debug messages
     * @return void
     */

    function setDebug($debug) {
        $this->debug = $debug;
    }
}

?>



de code in mijn index.php is als volgt, (die is al wel aangepast, en lijkt me ook goed):

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
<?php
                while($row = mysqli_fetch_array($uitslag))
                        {

                        echo $row['inhoud'];
                        }

                if ($pagina > 999 && $pagina < 10000 || $pagina == 'story' || $pagina == 'feeling' || $pagina == 'sound' || $pagina == 'rhythm' || $pagina == 'trailer' || $pagina == 'b721' || $pagina == 'bel' || $pagina == 'cyndi' || $pagina == 'dread' || $pagina == 'ffm' || $pagina == 'jill' || $pagina == 'cas' || $pagina == 'dw' || $pagina == 'lin' || $pagina == 'msde' || $pagina == 'msd' || $pagina == 'msl' || $pagina == 'misty' || $pagina == 'nod' || $pagina == 'np59' || $pagina == 'other' || $pagina == 'par' || $pagina == 'pg15' || $pagina == 'sab' || $pagina == 'scifi' || $pagina == 'sjg' || $pagina == 'spec' || $pagina == 'stp' || $pagina == 'stm' || $pagina == 'stf' || $pagina == 'tgin' || $pagina == 'tgl' || $pagina == 'wf2008' || $pagina == 'stbbq' || $pagina == 'stutrecht' || $pagina == 'stspecial' || $pagina == 'history' || $pagina == 'tos' || $pagina == 'tng' || $pagina == 'ds9' || $pagina == 'voy' || $pagina == 'ent' || $pagina == 'stx' || $pagina == 'sev' || $pagina == 'all' || $pagina == 'mvotm') {
                
                $pager = new PS_Pagination($conn, $query, 5, 10, "pagina=$pagina");
                $rs = $pager->paginate();
                    if(!$rs) die(mysqli_error($conn));
                ?>

                    <div class="mv" align="center"><p><br>&nbsp;<br>
                <?php
                    echo $pager->renderFullNav(); echo "<br />\n";
                ?>

                    </div>
                <?php
                    while($row = mysqli_fetch_array($rs)) {
                        echo $row['inhoud'],"<br />\n";
                        }

                ?>

                        <div align="center"><p><br>&nbsp;<br>
                <?php
                        echo $pager->renderFullNav(); echo "<br />\n";
                ?>

                        </div>
                <?php
                    } else if ($pagina == 'news') {
                
                $pager = new PS_Pagination($conn, $query, 6, 5, "pagina=$pagina");
                $rs = $pager->paginate();
                    if(!$rs) die(mysqli_error($conn));
                ?>

                    <div class="mv" align="center"><p><br>&nbsp;<br>
                <?php
                    echo $pager->renderFullNav(); echo "<br />\n";
                ?>

                    </div>
                <?php
                    while($row = mysqli_fetch_array($rs)) {
                        echo $row['inhoud'],"<br />\n";
                        }

                ?>

                        <div align="center"><p><br>&nbsp;<br>
                <?php
                        echo $pager->renderFullNav(); echo "<br />\n";
                ?>

                        </div>        
                <?php
                    } else {
                        while($row = mysqli_fetch_array($result))
                        {

                        echo $row['inhoud'];
                        }
                    }


                ?>
 
- Ariën  -
Beheerder

- Ariën -

04/08/2016 18:11:55
Quote Anchor link
In de class zijn alle gedefineerde variabele bovenaan 'public' net als de functies, en verder moet je de functie PS_Pagination vervangen naar een __construct()

En verder moet je ook mysqli gebruiken.
Gewijzigd op 04/08/2016 18:13:25 door - Ariën -
 



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.