10 berichten per pagina

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jordi Kroon

Jordi Kroon

10/11/2010 16:39:12
Quote Anchor link
ik zou graag willen dat je een link hebt zoals deze

sficlan.com/test/news.php?p=2

dit is dan als er bijvoorbeeld 12 berichten zijn dat er dan 10 pagina 1 komen te staan en 2 op pagina 2
of als er 64 berichten zijn dat je dan 7 paginas hebt

hoe doe ik dit ?

mijn code:

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



// Database connectie maken met database
include('includes/conn.php');
include('includes/ubb.php');


// Alles uit db halen laatste bericht als eerste.
$sql = mysql_query("SELECT
                        *,
                        id
                    FROM
                        news
                    ORDER BY
                        datum
                    DESC
                    "
);

// Als de query is gelukt
if($sql)
{

    // Als er items zijn
    if(mysql_num_rows($sql) > 0)
    {

        // Items neerzetten
        while($rec = mysql_fetch_assoc($sql))
        {

            // Alles echoën
            echo '<b>Naam:</b>   '.$rec['user'];
            Echo "<br>";
            echo '<b>Gepost op:</b> '.$rec['datum'];
            Echo "<br>";
                        Echo "<br>";
            echo nl2br('<b>Bericht: </b>'.ubb_gastenboek($rec['news']));
            
            // Lijntje
            echo '<br><hr><br>';
        }
    }

    // Anders
    else
    {
        // Geen berichten
        echo 'Er zijn nog geen nieuws berichten!.';
    }    
}

// Anders
else
{
    // MySql error
    echo 'Er is een fout opgetreden in de query: <br />';
    echo mysql_error();
}



# Als er is gesubmit
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{

    # Velden leeg check
if($_POST['user'] == "" )
    {

        $errors[] = 'Je bent je naam vergeten!';
    }

if($_POST['news'] == "" )
    {

        $errors[] = 'laat het veld news niet leeg !';
    }

    
if($_POST['news'] == "Typ hier je nieuws!" )
    {

        $errors[] = 'laat het veld news niet leeg !';
    }
    
    
    if( !isset( $errors ) )
    {

        $qry = "INSERT INTO
                    news
                        (
                         user,
                         news,
                         ip,
                         datum                        
                         )
                VALUES
                    (
                     '"
.mysql_real_escape_string( $_POST['user'] )."',
                     '"
.mysql_real_escape_string( $_POST['news'] )."',
                     '"
.$_SERVER['REMOTE_ADDR']."',
                     NOW()
                     )"
;
                    
        if( mysql_query( $qry ) )
        {

 Echo "Het nieuw is succesvol verwerkt, bedankt voor je inzending!";
     echo '
    <form action="" method="post">
        <label>Naam:</label>
        <input type="text" size="12" maxlength="12" name="user">
        <br />
        <label>News:</label>
        <textarea name="news" rows="4" cols="50">Typ hier je nieuws!</textarea>
        <br />
        <input type="submit" value="Post" name="Post">
    </form>'
;
        }

        else
        {

echo 'Foutjeee :( ' . mysql_error( );
        }
    }

    else
    {
        foreach( $errors as $error )
        {

            echo  $error.'<br />';
        }
    }
}

else
{
    # Het formulier
    echo '
    <form action="" method="post">
        <label>Naam:</label>
        <input type="text" size="12" maxlength="12" name="user">
        <br />
        <label>News:</label>
        <textarea name="news" rows="4" cols="50">Typ hier je nieuws!</textarea>
        <br />
        <input type="submit" value="Post" name="Post">
    </form>'
;
}

?>
 
PHP hulp

PHP hulp

11/01/2025 20:04:19
 
- Mark -

- Mark -

10/11/2010 16:41:55
Quote Anchor link
google eens op pagination zo noemen ze dat. Er staan ook verschillende hier op phphulp als ik me niet vergis.
 
Jordi Kroon

Jordi Kroon

10/11/2010 17:03:49
Quote Anchor link
ik snap het een beetje maar ik weet niet hoe ik het moet toepassen

mischien een voorbeeldje?
 
- Mark -

- Mark -

10/11/2010 17:13:27
Quote Anchor link
Ik heb helaas geen goed duidelijk voorbeeld om handen.

Het gaat met name om het LIMIT gedeelte. LIMIT 0, 10 zal de eerste 10 resultaten weergeven. LIMIT 10, 10 zal de volgende 10 resultaten weergeven. 11 t/m 12 in jouw geval omdat je maar 12 resultaten in totaal hebt.
 
Jordi Kroon

Jordi Kroon

10/11/2010 17:40:37
Quote Anchor link
limit had ik nog wel begrepen

maar dan heb ik geen ?p=2
 
- Mark -

- Mark -

10/11/2010 18:08:19
Quote Anchor link
Onderstaand script is van een tijdje geleden. Je zult het zelf moeten aanpassen. Het zal wel niet geheel naar wens zijn. Ik zou het eerst als een apparte pagina opslaan zodat je kunt zien hoe het werkt. Daarna uit elkaar halen en er bij jouw erin bouwen.

Je weet dus wel hoe je de huidige pagina omzet in het LIMIT gedeelte?

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

    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Pagination | Settings.
    --------------------------------------------------------------------------------------------------------------------------*/    

    /*---- INFO! ---->
    
        Make sure the menu length is an uneven number.
                
    */
    
    #| Maximum length of the menu.

    
        $menu_length = 5;
    
    
    #| Menu's divider.
    
        $menu_divider = ' | ';


    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Pagination | Page count.
    --------------------------------------------------------------------------------------------------------------------------*/                

    // Hier moet je je eigen code plaatsen voor het het berekenen van het aantal pagina's,

    
        $page_count = 32;


    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Pagination | Validate the supplied current page. " $_GET['page'] "
    --------------------------------------------------------------------------------------------------------------------------*/                
            
    #| Current page.

    
        $current_page = (isset($_GET['page']) and in_array($_GET['page'], range(1, $page_count))) ? $_GET['page'] : 1 ;


    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Pagination | Menu's range.
    --------------------------------------------------------------------------------------------------------------------------*/    

    /*---- INFO! ---->
    
        Calculate the menu's range.
                
    */

    #| Calculate the menu's middle point.

    
        $mid_point = floor($menu_length / 2 );


    #| Calculate the menu's range.
    
        if($page_count < $menu_length){
        
        #| Not enough pages for the fancy stuff.
        
            $menu_range = range(1, $page_count);
            
        }

        elseif($current_page > ($page_count - $mid_point)){
            
        #| Last couple of pages.

        /*---- INFO: Check if " $page_count " isn't the same as " $menu_length " to prevent page 0 to be displayed. ----*/


            if($page_count == $menu_length){
            
            #| Return page 1 / last.
            
                return range(1, $page_count);
                
            }

            else{
            
            #| Last couple of pages.
            
                return range(($page_count - $menu_length) , $page_count);
                
            }
            
        }

        elseif($current_page > $mid_point){
        
        #| Middle pages.
        
            $menu_range = range(($current_page - $mid_point), ($current_page + $mid_point));
            
        }

        else{
        
        #| First couple of pages.
        
            $menu_range = range(1, $menu_length);
            
        }


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Pagination :: Demo</title>
</head>

<body>
<?php        

    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Pagination | Previous page
    --------------------------------------------------------------------------------------------------------------------------*/    
    
    #| ...

    
        if($current_page > 1){
            
            echo '<a href="?page='.($current_page - 1).'">Previous</a> ';
        }


    
    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Pagination | Numeric menu.
    --------------------------------------------------------------------------------------------------------------------------*/    

    #| Set " $menu " array for storing all the menu's items.

    
        $menu = array();
        
    
    #| Create all the menu's items.
    
        foreach($menu_range as $page){
            
            $menu[] = ($page == $current_page) ? '(<a href="?page='.$page.'">'.$page.'</a>) ' : '<a href="?page='.$page.'">'.$page.'</a>' ;
        }

        

    #| Display the menu.

        echo implode($menu_divider, $menu);

    
    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Pagination | Next page.
    --------------------------------------------------------------------------------------------------------------------------*/
    

        if($current_page < $page_count){
            
            echo ' <a href="?page='.($current_page + 1).'">Next</a>';
        }


?>

</body>
</html>
 
Jordi Kroon

Jordi Kroon

10/11/2010 21:33:24
Quote Anchor link
Hier heb ik denk ik wel iets aan
 
Justin S

Justin S

10/11/2010 22:52:22
Quote Anchor link
Als je je pagina als key een ?p=2 mee wil geven, dan haal je met een $_GET toch gewoon P op en doe je het paginanummer keer 10? Pagina twee is 11 t/m 20.. Dus dan heb je de max, en dan haal je van die 20, 9 af (omdat 20 zelf ook een resultaat is) en dan krijg je 11. Dus dan voeg je dat in je limit toe qua SQL query, dan heb je LIMIT 11,20... Wellicht een ideetje!
 



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.