[PHP] Door pagina's heenbladeren (navigatie oid.)

Pagina: 1
Acties:
  • 64 views sinds 30-01-2008

  • monnick
  • Registratie: December 2005
  • Niet online
Op mijn site heb ik een reactie systeem geschreven. Het reactie systeem werkt prima. Nu wil ik nog dat op elke pagina van het reactie systeem 30 berichten worden getoont en dat je dan dmv << 1 [2] 3 >> etc naar de volgende 30 berichten kan gaan. Het navigatie script hiervoor heb ik niet zelf gemaakt maar heeft iemand mij aangeleverd. Dit navigatie script (ik noem het even navigatie, ik weet niet hoe ik het anders moet noemen) werkt goed want ik heb ik dit script ook in gebruik op mijn gastenboek.

Alleen dit keer werkt het navigatie script niet.....Ik heb al van alles geprobeerd, maar helaas het lukt me niet. Nu is de vraag aan jullie: Kunnen jullie misschien zien waar de fout zit en mij helpen het script werkend te maken.

Nu staat in het script $max_results op 10. Dat wil zeggen dat er per pagina 10 berichten op staan. Alleen als ik het nu uitprobeerd dan zie ik dus de laatste 10 resultaten op de pagina en daaronder zie ik het 'menu-tje' zoals 1 2 3 >> etc. Maar klik ik dan bijvoorbeeld op de 2 dan gaat hij naar pagina 2 (dmv van ?pagina=2 in url) maar op pagina 2 staan dezelfde 10 resultaten. Zelfde geld voor alle andere pagina's: op elke pagina staan dezelfde 10 resultaten!

Ik hoop dat iemand mij kan helpen!

PHP:
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
<?

// BEGINNEN MET REACTIES VAN GET ID UIT DE DATABASE TE HALEN
            
$reageer_sql = "SELECT * FROM `reactie` WHERE nieuwsid='$nieuwsid' ORDER BY id DESC LIMIT 0, 30";
$reageer_query = mysql_query($reageer_sql) or die(mysql_error());

##################################################################
########################## NAVIGATIE #############################
##################################################################
if(!isset($_GET['pagina']))  
    {   
        $pagina = 1;   
    }  
    else  
    {   
           $pagina = $_GET['pagina'];   
    }  
      
$max_results = 10;
$from = (($pagina * $max_results) - $max_results); 

$sql_nav = "SELECT * FROM `reactie` WHERE nieuwsid='$nieuwsid' ORDER BY id DESC LIMIT $from, $max_results";  
$query_nav = mysql_query($sql_nav) or die(mysql_error());

##################################################################
########################## NAVIGATIE #############################
##################################################################

while($rec_reactie = mysql_fetch_object($query_nav))
{
    $id_rec = $rec_reactie->id;
    $naam_rec = stripslashes($rec_reactie->naam);
    $bericht_rec = stripslashes($rec_reactie->bericht);
    $email_rec = stripslashes($rec_reactie->email);
    $ipadres_rec = stripslashes($rec_reactie->ipadres);
    $datum_rec = stripslashes($rec_reactie->datum);
    $tijd_rec = stripslashes($rec_reactie->tijd);
    
    // html codes uit filteren
    $bericht_rec = htmlspecialchars($bericht_rec);
    
    ##################################################################
    ########################## SMILIES ###############################
    ##################################################################
    $bericht_rec = eregi_replace(':D', '[img]"icons/grotelach.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':-D', '[img]"icons/grotelach.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace('\(6\)', '[img]"icons/evil.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':\\(', '[img]"icons/huilen.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':\)', '[img]"icons/glimlach.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':-\)', '[img]"icons/glimlach.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':-\\(', '[img]"icons/huilen.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(';\)', '[img]"icons/knipoog.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(';-\)', '[img]"icons/knipoog.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':p', '[img]"icons/tong.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':-p', '[img]"icons/tong.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':\\)', '[img]"blij.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace('\\[lol\]', '[img]"icons/lol.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':\|', '[img]"icons/neutraal.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':-\|', '[img]"icons/neutraal.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace('8-\)', '[img]"icons/cool.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace('8\)', '[img]"icons/cool.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':o', '[img]"icons/ow.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':-o', '[img]"icons/ow.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':s', '[img]"icons/verbaasd.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':-s', '[img]"icons/verbaasd.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':\\[', '[img]"icons/schamen.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':-\\[', '[img]"icons/schamen.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace('\^\^', '[img]"icons/lol.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':@', '[img]"icons/boos.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':-@', '[img]"icons/boos.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace('8\|', '[img]"icons/shock.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace('8-\|', '[img]"icons/shock.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace(':-/', '[img]"icons/raar.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace('o\_o', '[img]"icons/rologen.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace('\\[evil\]', '[img]"icons/bozelach.gif"[/img]',$bericht_rec);
    $bericht_rec = eregi_replace('\\[md\]', '[img]"icons/md.jpg"[/img]',$bericht_rec);
    ##################################################################
    ########################## SMILIES ###############################
    ##################################################################
    
    ##################################################################
    ########################## BB-CODE ###############################
    ##################################################################
    $bericht_rec = preg_replace('!\\[u\](.*?)\\[/u\]!', "<u>\\1</u>", $bericht_rec);
    $bericht_rec = preg_replace('!\\[b\](.*?)\\[/b\]!', "<b>\\1</b>", $bericht_rec);
    $bericht_rec = preg_replace('!\\[i\](.*?)\\[/i\]!', "<i>\\1</i>", $bericht_rec); 
    $bericht_rec = preg_replace("#\\[quote\](.*?)\\[/quote\]#si", "<div class=\"tekst\"><font size=-2 color=#333333><b><hr color=#333333 size=1>Quote:</b><br><br>\\1<hr color=#333333 size=1></font></div>", $bericht_rec); 
    $bericht_rec = preg_replace("#\[img=(right|left)\](http(s)?://)([a-z0-9\-\.,\?\-[:space:]!%\*_\#:;~\\&$@\/=\+]+)\\[/img\]#si", "[img]\"\\2\\4\"[/img]", $bericht_rec);
    $bericht_rec = eregi_replace("\\[url\][[:space:]]*(http://)?([^\\\[]*)[[:space:]]*\\[/url\]", "<a href=\"http://\\2/\" target=\"_blank\">\\2</a>", $bericht_rec);
    $bericht_rec = eregi_replace("\\[url=([^\\[]*)\]([^\\[]*)\\[/url\]","<a href=\"\\1\" target=_blank>\\2</a>",$bericht_rec); 
    ##################################################################
    ########################## BB-CODE ###############################
    ##################################################################
    
    // enters toevoegen
    $bericht_rec = nl2br($bericht_rec);
    // wordwrap:
    $bericht_rec = wordwrap($bericht_rec, 40, "\n", 1);
    
    if($email_rec == geen_email)
?>
</div>
<table width="548" align="center" cellpadding="0" cellspacing="0" border="0">
  <tr>
    <td width="556" height="29" background="images/menu_03.gif"><div align="center" class="titel_table">
        <div align="left"><b>
<? 
echo "<font color=\"#333333\"><i>RE: $titel</i></font>";

if(!eregi("quote", $bericht_rec))
{
    echo " <a href=\"?p=reageer_quote&id=$nieuwsid&qid=$id_rec\">[img]\"images/edit.jpg\"[/img]</a>";
}

// kijken of er een e-mail adres is opgegeven.
if($email_rec != geen_email)
{
    echo " <a href=\"mailto:$email_rec\">[img]\"images/email.jpg\"[/img]</a>";
}

// kijken of de admin is ingelogd
if($admin)
{
    // Admin ban & delete plaatjes weergeven.
    // Groen envelopje = bericht meteen verwijderen.
    // Rood envelopje = gebruiker meteen verbannen.
    echo " <a href=\"?p=reageer&id=$nieuwsid&did=$id_rec\">[img]\"images/delete.jpg\"[/img]</a>";
    echo " <a href=\"?p=reageer&id=$nieuwsid&bip=$ipadres_rec\">[img]\"images/ban.jpg\"[/img]</a>";
} 
?>

</b></div>
    </div></td>
  </tr>
  <tr>
    <td height="26" background="images/menu_05.gif">
    <div align="left" class="tekst_table">
    <?
    echo $bericht_rec;
    ?>
    </div>
    </td>
  </tr>
  <tr>
    <td height="30" background="images/menu_06.gif"><div align="right" class="under_table">
    <?
    echo "Geschreven door <b>$naam_rec</b> op <b>$datum_rec</b> om <b>$tijd_rec</b>";
    ?>
    </div></td>
  </tr>
</table><br>
<center>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<p class="tekst_table">
<?
} // <-- if aflsuiten

##################################################################
########################## NAVIGATIE #############################
##################################################################      
    $total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM `reactie` WHERE nieuwsid='$nieuwsid'"),0)or die(mysql_error());   

    $total_pages = ceil($total_results / $max_results);   

    if($pagina > 1)  
    {   
        $prev = ($pagina - 1);   
        echo "<a href='index.php?p=reageer&id=$nieuwsid&?pagina=".$prev." '><<</a>&nbsp;";   
    }   

    for($i = 1; $i <= $total_pages; $i++)  
    {   
        if(($pagina) == $i)  
        {   
            echo "<b>$i &nbsp;</b>";   
        }  
        else  
        {   
            echo "<a href='index.php?p=reageer&id=$nieuwsid&?pagina=".$i." '>".$i."</a>&nbsp;";   
        }   
    }   

    if($pagina < $total_pages)  
    {   
        $next = ($pagina + 1);   
        echo "<a href='index.php?p=reageer&id=$nieuwsid&?pagina=".$next." '>>></a>";   
    }
##################################################################
########################## NAVIGATIE #############################
##################################################################
?>


De stukken van het navigatie script staan tussen ##### NAVIGATIE #####. :+

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 20:20
Volgens mij ontbreekt er iets in regel 23. Succes...

  • Guldan
  • Registratie: Juli 2002
  • Laatst online: 08-04 11:34

Guldan

Thee-Nerd

echo eens de waarden $from en $maxresults eens en kijk eens of die kloppen...?

You know, I used to think it was awful that life was so unfair. Then I thought, wouldn't it be much worse if life were fair, and all the terrible things that happen to us come because we actually deserve them?


  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Deze gebruik ik altijd:

PHP:
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
$max = 15;

if (isset($_GET['page']) && is_numeric($_GET['page']))
{
    $page = $_GET['page'];
}
else
{
    $page = 0;
}

$sql = 'SELECT COUNT(*) as aantal FROM blaat';
$qry = mysql_query($sql);

if (mysql_result($qry, 0, 'aantal') > 0) 
{
    $url = '';
    foreach ($_GET as $key => $value) 
    {
        if ($key !== 'page') 
        {
          $url .= urlencode($key) . '=' . urlencode($value) . '&';
        }
    } 
    $url = rtrim($url, '&');    

    $rtel = ceil($aantal / $max);

    if (empty($page) || $page > $rtel) 
    {
        $page = 1;
    }        
    
    $start = $page - 3;
    
    if ($start < 1) 
    {
        $start = 1;
    }
    
    for ($p = $start; $p <= ($page + 3) && $p <= $rtel; $p++) 
    {
        if ($page == $p)
        {
            $pages[$p] = '<span style="text-decoration: underline; font-weight: bold;">' . $p . '</span>';
        }
        else
        {
            $pages[$p] = '<a class="navi" href="index.php?' . $url . '&page=' . $p . '">' . $p . '</a>';
        }
    }
    
    $pages = implode(' | ', $pages);
        
    $vorige = ($page - 1) ? '<a href="index.php?' . $url . '&page=' . ($page - 1) . '"><---</a>' : '';
    $volgende = ($page - ceil($rtel)) ? '<a href="index.php?' . $url . '&page=' . ($page + 1) . '">---></a>' : '';
    //$begin = ($page != 1) ? '<a href="index.php?' . $url . '&page=1\">Begin</a> |' : '';
    //$eind = ($page != $rtel) ? '| <a href="index.php' . $url . '&page=' . $rtel . '">Eind</a>' : '';
    
    $navigation = $vorige . ' | ' . $pages . ' | ' . $volgende;
}

$van = ($page - 1) * $max;
echo $navigation;

$sql = 'SELECT * FROM blaat LIMIT ' . $van . ', ' . $max;

[ Voor 116% gewijzigd door XWB op 26-02-2006 22:10 ]

March of the Eagles


  • monnick
  • Registratie: December 2005
  • Niet online
Guldan schreef op zondag 26 februari 2006 @ 21:33:
echo eens de waarden $from en $maxresults eens en kijk eens of die kloppen...?
op pagina 1 geeft:

$from = 0
$max_results = 10

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Je moet kijken wat ie op pagina 2 (of verder) als resultaat heeft.

March of the Eagles


  • monnick
  • Registratie: December 2005
  • Niet online
op pagina 2 geeft from ook 0...daar zit me denk ik de fout? moet $from op pagina 2 geen 10 zijn?

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Daar zit je fout ja, want op pagina 2 moet $from het getal zijn tot waar je op de vorige pagina ging.

March of the Eagles


  • monnick
  • Registratie: December 2005
  • Niet online
haha heel erg stom.

de links waren allemaal fout, er stond:

<a href='index.php?p=reageer&id=$nieuwsid&?pagina=".$next." '>>></a>"

het moet:

<a href='index.php?p=reageer&id=$nieuwsid&pagina=".$next." '>>></a>"

zijn. toch bedankt he!

[ Voor 50% gewijzigd door monnick op 26-02-2006 22:21 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18:35

Creepy

Tactical Espionage Splatterer

Lees aub voor de volgende keer even P&W FAQ - Het FAQ/Beleid topic goed door en dan met name P&W FAQ - De "quickstart".

Je post nu een enorme lap code en je geeft niet aan wat je nu precies hebt geprobeerd. Dit topic komt nu over als "dit is mijn code, HELP", en dat is nu niet helemaal de bedoeling. Je zult minimaa erbij moeten vermelden welke zaken je nu hebt geprobeerd en wat daar niet mee lukte. Daarnaast post je nu veel te veel code en zul je je moeten beperken tot alleen de relevante code.
Als laatste: bij software ontwikkelen hoort ook debuggen. Ga dus zelf eerst debuggen voordat je hier een topic opent. Je was dan al achter je foutje gekomen zonder hier dit topic te openen ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.