Klopt iets niet in paginascript
Ik ben bezig met een paginascript voor reacties, hij gefet geen foutmeldingen etc. maar hij maakt ergens een rekenfoutje.. echter kan ik dat foutje niet vinden, misschien dat jullie even kunnen helpen
Het scriptje:
Code (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
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
<?php
$id = $_GET['id'];
$pagina = $_GET['pagina'];
$platform = $_GET['platform'];
$type = $_GET['type'];
$nr = $_GET['nr'];
if(empty($_GET['nr'])){
$nr = 1;
}
$reactie_aantal = 10;
$reacties_count = "SELECT COUNT(id) FROM reacties WHERE nieuwsid=$id";
$reacties_count_res = mysql_query($reacties_count) or die (mysql_error());
$reacties_count_rows = mysql_fetch_array($reacties_count_res);
$aantalwaarde = $nr * $reactie_aantal - ($reactie_aantal);
$reacties_sql = "SELECT * FROM reacties WHERE nieuwsid=$id ORDER BY id ASC LIMIT $aantalwaarde, $reactie_aantal";
$reacties_res = mysql_query($reacties_sql) or die(mysql_error());
$reacties_num = mysql_num_rows($reacties_res);
if(mysql_num_rows($reacties_res) == 0){
echo("Er zijn nog geen reacties geplaatst");
}
while($reacties = mysql_fetch_array($reacties_res))
{
echo '<div id="reply_container">';
echo ' <div id="reply_box_left">';
echo ' <img src="images/avatar80x80.jpg" alt="Member avatar" />';
echo ' <p class="username">'.$reacties['gebruiker'].'<p>';
echo ' <p class="rank">Admin<p>';
echo ' </div>';
echo ' <div id="reply_box_top">Geplaatst op: Donderdag 6 juli 2006 om 12:04</div> ';
echo ' <div id="reply_box_bot">'.$reacties['bericht'].'</div>';
echo '</div>';
}
echo "<div id='reply_bar' style='margin-top:10px;'>";
if($nr != 1){
$vorige = $nr--;
echo "<a href='index.php?platform=$platform&pagina=$pagina&type=$type&id=$id&nr=$vorige'>Vorige</a> ";
}else{
echo "Vorige ";
}
$pagina_num = $reacties_count_rows[0] / $reactie_aantal;
for($i = 1; $i <= $pagina_num; $i++){
if($i == $nr){
echo "[$i] ";
}else{
echo "<a href='index.php?platform=$platform&pagina=$pagina&type=$type&id=$id&nr=$i'>$i</a> ";
}
}
if(($reacties_num % $reactie_aantal) != 0){
if($i == $nr){
echo "[$i] ";
}else{
echo "<a href='index.php?platform=$platform&pagina=$pagina&type=$type&id=$id&nr=$i'>$i</a> ";
}
}
if(($reacties_num - ($reactie_aantal * $nr)) > 0){
$volgende = $nr++;
echo " Volgende";
}else{
echo " <a href='index.php?platform=$platform&pagina=$pagina&type=$type&id=$id&nr=$volgende'>Volgende</a>";
}
?>
$id = $_GET['id'];
$pagina = $_GET['pagina'];
$platform = $_GET['platform'];
$type = $_GET['type'];
$nr = $_GET['nr'];
if(empty($_GET['nr'])){
$nr = 1;
}
$reactie_aantal = 10;
$reacties_count = "SELECT COUNT(id) FROM reacties WHERE nieuwsid=$id";
$reacties_count_res = mysql_query($reacties_count) or die (mysql_error());
$reacties_count_rows = mysql_fetch_array($reacties_count_res);
$aantalwaarde = $nr * $reactie_aantal - ($reactie_aantal);
$reacties_sql = "SELECT * FROM reacties WHERE nieuwsid=$id ORDER BY id ASC LIMIT $aantalwaarde, $reactie_aantal";
$reacties_res = mysql_query($reacties_sql) or die(mysql_error());
$reacties_num = mysql_num_rows($reacties_res);
if(mysql_num_rows($reacties_res) == 0){
echo("Er zijn nog geen reacties geplaatst");
}
while($reacties = mysql_fetch_array($reacties_res))
{
echo '<div id="reply_container">';
echo ' <div id="reply_box_left">';
echo ' <img src="images/avatar80x80.jpg" alt="Member avatar" />';
echo ' <p class="username">'.$reacties['gebruiker'].'<p>';
echo ' <p class="rank">Admin<p>';
echo ' </div>';
echo ' <div id="reply_box_top">Geplaatst op: Donderdag 6 juli 2006 om 12:04</div> ';
echo ' <div id="reply_box_bot">'.$reacties['bericht'].'</div>';
echo '</div>';
}
echo "<div id='reply_bar' style='margin-top:10px;'>";
if($nr != 1){
$vorige = $nr--;
echo "<a href='index.php?platform=$platform&pagina=$pagina&type=$type&id=$id&nr=$vorige'>Vorige</a> ";
}else{
echo "Vorige ";
}
$pagina_num = $reacties_count_rows[0] / $reactie_aantal;
for($i = 1; $i <= $pagina_num; $i++){
if($i == $nr){
echo "[$i] ";
}else{
echo "<a href='index.php?platform=$platform&pagina=$pagina&type=$type&id=$id&nr=$i'>$i</a> ";
}
}
if(($reacties_num % $reactie_aantal) != 0){
if($i == $nr){
echo "[$i] ";
}else{
echo "<a href='index.php?platform=$platform&pagina=$pagina&type=$type&id=$id&nr=$i'>$i</a> ";
}
}
if(($reacties_num - ($reactie_aantal * $nr)) > 0){
$volgende = $nr++;
echo " Volgende";
}else{
echo " <a href='index.php?platform=$platform&pagina=$pagina&type=$type&id=$id&nr=$volgende'>Volgende</a>";
}
?>
Hij geeft nu alleen Vorige1Volgende weer, alleen heb ik dus wel 92 records en iedere pagina heeft er 10 heirvan.. dus zou hij minstens tot 9 moeten lopen..
Gewijzigd op 01/01/1970 01:00:00 door Leo
zet ff <?php en ? er omheen
Sorry, fixed.. het komt namelijk uit index.php
Dit antwoord is ALTIJD kleiner of gelijk aan 1.
Edit: Ik denk dat je dit bedoelt:
$pagina_num = $reacties_count_rows[0] / $reactie_aantal;
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
$pagina_num = 92/10
92 delen door 10 is 9,2..
Edit: dit staat er nog boven he ;)
$reacties_num = mysql_num_rows($reacties_res);
Gewijzigd op 01/01/1970 01:00:00 door Leo
Edit: en dus nooit meer dan 10 antwoorden.
Edit2: Zie mijn vorige post => edit.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
als ik nu op pagina 6 ben en ik klik op vorige gaat die naar pagina 6.. en bij volgende zet die geen pagina neer :S
Edit: En als ik op pagina 6 ben geeft die aan dat ik op pagina 5 ben.. beetje raar dus
Gewijzigd op 01/01/1970 01:00:00 door Leo
Maar even een vraagje: bij 95 records krijg je nu 1 2 3 4 5 6 7 8 9 te zien. Maar wat nou als er 2000 records zijn?
Edit: even als voorbeeld:
http://www.worldofzelda.com/index.php?pagina=phantomhourglass&type=nieuws&id=3&nr=3
Nu kan je zien wat ik bedoel..
*in firefox weergeeft hij de onderste div niet, hier moet ik nog wat aan doen.
Gewijzigd op 01/01/1970 01:00:00 door Leo
Ik ben het script even geheel aan het doorspitten. Dus even geduld aub.
Waarom niet zo scripten:
Als pagina 4 of hoger is, dan 2,3,4,5,6/.
Dus elke keer 5 pagina's tegelijk.. (of tien, wat jij wilt natuurlijk) en steeds meeschuiven.
EEn linkje erbij naar de 1e en laatste pagina, en klaar.. Geen vern**kte layout meer, maar je hoeft er geen limits op te zetten.
@SanThe, ik update even de code, ik heb wat aanpassingen gemaakt kwa links..
Code (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
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
<?php
$id = $_GET['id'];
$pagina = $_GET['pagina'];
$type = $_GET['type'];
$nr = $_GET['nr'];
if(empty($_GET['nr']))
{
$nr = 1;
}
$reacties_max_aantal = 10;
$reacties_count = "SELECT COUNT(id) FROM reacties WHERE nieuwsid=$id";
$reacties_count_res = mysql_query($reacties_count) or die (mysql_error());
$reacties_count_rows = mysql_fetch_array($reacties_count_res);
$reacties_totaal_aantal = $reacties_count_rows[0];
$aantalwaarde = $nr * $reacties_max_aantal - ($reacties_max_aantal);
$reacties_sql = "SELECT * FROM reacties WHERE nieuwsid=$id ORDER BY id ASC LIMIT $aantalwaarde, $reacties_max_aantal";
$reacties_res = mysql_query($reacties_sql) or die(mysql_error());
$reacties_aantal = mysql_num_rows($reacties_res);
if( $reacties_aantal == 0)
{
echo 'Er zijn nog geen reacties geplaatst';
}
while($reacties = mysql_fetch_array($reacties_res))
{
echo '<div id="reply_container">';
echo ' <div id="reply_box_left">';
echo ' <img src="images/avatar80x80.jpg" alt="Member avatar" />';
echo ' <p class="username">'.$reacties['gebruiker'].'<p>';
echo ' <p class="rank">Admin<p>';
echo ' </div>';
echo ' <div id="reply_box_top">Geplaatst op: Donderdag 6 juli 2006 om 12:04</div> ';
echo ' <div id="reply_box_bot">'.$reacties['bericht'].'</div>';
echo '</div>';
}
echo '<div id="reply_bar" style="margin-top:10px;">';
$paginas_aantal = ceil($reacties_totaal_aantal / $reacties_max_aantal);
for($i = 1; $i <= $paginas_aantal; $i++)
{
if($i == 1)
{
if($nr != 1)
{
$vorige = $nr--;
echo "<a href='index.php?pagina=$pagina&type=$type&id=$id&nr=$vorige'>Vorige</a>";
}
else
{
echo "Vorige";
}
}
if($i == $nr)
{
echo $i;
}
else
{
echo "<a href='index.php?pagina=$pagina&type=$type&id=$id&nr=$i'>$i</a>";
}
if($i == $paginas_aantal)
{
if($nr != $paginas_aantal)
{
$volgende = $nr++;
echo "<a href='index.php?pagina=$pagina&type=$type&id=$id&nr=$volgende'>Volgende</a>";
}
else
{
echo "Volgende";
}
}
}
?>
$id = $_GET['id'];
$pagina = $_GET['pagina'];
$type = $_GET['type'];
$nr = $_GET['nr'];
if(empty($_GET['nr']))
{
$nr = 1;
}
$reacties_max_aantal = 10;
$reacties_count = "SELECT COUNT(id) FROM reacties WHERE nieuwsid=$id";
$reacties_count_res = mysql_query($reacties_count) or die (mysql_error());
$reacties_count_rows = mysql_fetch_array($reacties_count_res);
$reacties_totaal_aantal = $reacties_count_rows[0];
$aantalwaarde = $nr * $reacties_max_aantal - ($reacties_max_aantal);
$reacties_sql = "SELECT * FROM reacties WHERE nieuwsid=$id ORDER BY id ASC LIMIT $aantalwaarde, $reacties_max_aantal";
$reacties_res = mysql_query($reacties_sql) or die(mysql_error());
$reacties_aantal = mysql_num_rows($reacties_res);
if( $reacties_aantal == 0)
{
echo 'Er zijn nog geen reacties geplaatst';
}
while($reacties = mysql_fetch_array($reacties_res))
{
echo '<div id="reply_container">';
echo ' <div id="reply_box_left">';
echo ' <img src="images/avatar80x80.jpg" alt="Member avatar" />';
echo ' <p class="username">'.$reacties['gebruiker'].'<p>';
echo ' <p class="rank">Admin<p>';
echo ' </div>';
echo ' <div id="reply_box_top">Geplaatst op: Donderdag 6 juli 2006 om 12:04</div> ';
echo ' <div id="reply_box_bot">'.$reacties['bericht'].'</div>';
echo '</div>';
}
echo '<div id="reply_bar" style="margin-top:10px;">';
$paginas_aantal = ceil($reacties_totaal_aantal / $reacties_max_aantal);
for($i = 1; $i <= $paginas_aantal; $i++)
{
if($i == 1)
{
if($nr != 1)
{
$vorige = $nr--;
echo "<a href='index.php?pagina=$pagina&type=$type&id=$id&nr=$vorige'>Vorige</a>";
}
else
{
echo "Vorige";
}
}
if($i == $nr)
{
echo $i;
}
else
{
echo "<a href='index.php?pagina=$pagina&type=$type&id=$id&nr=$i'>$i</a>";
}
if($i == $paginas_aantal)
{
if($nr != $paginas_aantal)
{
$volgende = $nr++;
echo "<a href='index.php?pagina=$pagina&type=$type&id=$id&nr=$volgende'>Volgende</a>";
}
else
{
echo "Volgende";
}
}
}
?>
Echo je query eens.
Sorry mijn fout, ik had dit tijdelijk in een ander file geplaatst omdat ik wat problemen had met index.php, alleen toen ben ik vergeten dat mijn script veel info uit de url haalt.. en deze had ik dus niet opgegeven..
http://www.worldofzelda.com/index.php?pagina=phantomhourglass&type=nieuws&id=3
Hij geeft altijd bij volgende nr=1 en de andere pagina's lopen 1 achter dus op pagina 5 staat er dat ik op pagina 4 ben :S
Code (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
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
<?php
for($i = 1; $i <= $paginas_aantal; $i++)
{
if($i == 1)
{
if($nr != 1)
{
$vorige = $nr-1;
echo "<a href='index.php?pagina=$pagina&type=$type&id=$id&nr=$vorige'>Vorige</a> ";
}
else
{
echo "Vorige ";
}
}
if($i == $nr)
{
echo $i . ' ';
}
else
{
echo "<a href='index.php?pagina=$pagina&type=$type&id=$id&nr=$i'>$i</a> ";
}
if($i == $paginas_aantal)
{
if($nr != $paginas_aantal)
{
$volgende = $nr+1;
echo "<a href='index.php?pagina=$pagina&type=$type&id=$id&nr=$volgende'>Volgende</a>";
}
else
{
echo "Volgende";
}
}
}
?>
for($i = 1; $i <= $paginas_aantal; $i++)
{
if($i == 1)
{
if($nr != 1)
{
$vorige = $nr-1;
echo "<a href='index.php?pagina=$pagina&type=$type&id=$id&nr=$vorige'>Vorige</a> ";
}
else
{
echo "Vorige ";
}
}
if($i == $nr)
{
echo $i . ' ';
}
else
{
echo "<a href='index.php?pagina=$pagina&type=$type&id=$id&nr=$i'>$i</a> ";
}
if($i == $paginas_aantal)
{
if($nr != $paginas_aantal)
{
$volgende = $nr+1;
echo "<a href='index.php?pagina=$pagina&type=$type&id=$id&nr=$volgende'>Volgende</a>";
}
else
{
echo "Volgende";
}
}
}
?>
Edit: Foutje er uit gehaald. Nu doet ie het waarschijnlijk wel goed.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Tnx SanThe, het werkt precies zoals ik wilde :)
Graag gedaan. ;-)