Klopt iets niet in paginascript

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Java Developer Onderzoeksinstituut Architec

Bedrijfsomschrijving Als Senior Java Developer kom je te werken bij een internationaal gerenommeerd onderzoeksinstituut. Dagelijks is dit instituut verantwoordelijk voor de juiste samenwerking, toegankelijkheid en communicatie voor circa 9000 interne gebruikers. In een team van elf ontwikkelaars ben je als Senior Java Developer verantwoordelijk voor het ontwikkelen van functionele ontwerpen naar technische oplossingen. Deze projecten bestaan o.a. projecten zoals het implementeren van Elastic Search en het koppelen van CMS. Ook fungeer je als vraagbaak voor je collega’s op het gebied van backend softwareontwikkeling. Daarnaast denk je graag mee op het gebied van architectuur qua mogelijke oplossingen en innovatie. Momenteel zijn

Bekijk vacature »

Leo

Leo

16/09/2006 14:41:00
Quote Anchor link
Hoi,

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)
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
<?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>&nbsp;&nbsp;";  
            }
else{
                echo "Vorige&nbsp;&nbsp;";
            }

        
            $pagina_num = $reacties_count_rows[0] / $reactie_aantal;
            
            for($i = 1; $i <= $pagina_num; $i++){
                if($i == $nr){
                    echo "[$i]&nbsp;";
                }
else{
                    echo "<a href='index.php?platform=$platform&pagina=$pagina&type=$type&id=$id&nr=$i'>$i</a>&nbsp;";
                }
            }


            if(($reacties_num % $reactie_aantal) != 0){
                if($i == $nr){
                    echo "[$i]&nbsp;";  
                }
else{
                    echo "<a href='index.php?platform=$platform&pagina=$pagina&type=$type&id=$id&nr=$i'>$i</a>&nbsp;";
                }
            }

        
            if(($reacties_num - ($reactie_aantal * $nr)) > 0){
                $volgende = $nr++;
                  
                echo "&nbsp;Volgende";  
            }
else{
                echo "&nbsp;<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
 
PHP hulp

PHP hulp

30/10/2020 08:34:38
 
Niek s

niek s

16/09/2006 14:46:00
Quote Anchor link
zet ff <?php en ? er omheen
 
Leo

Leo

16/09/2006 14:47:00
Quote Anchor link
Sorry, fixed.. het komt namelijk uit index.php
 
- SanThe -

- SanThe -

16/09/2006 15:04:00
Quote Anchor link
$pagina_num = $reacties_num / $reactie_aantal;

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 -
 
Leo

Leo

16/09/2006 15:09:00
Quote Anchor link
Hoezo? Je moet het zo zien in dit geval:

$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
 
- SanThe -

- SanThe -

16/09/2006 15:12:00
Quote Anchor link
$reacties_num = mysql_num_rows($reacties_res); en die query heeft een limit van 10

Edit: en dus nooit meer dan 10 antwoorden.
Edit2: Zie mijn vorige post => edit.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Leo

Leo

16/09/2006 15:13:00
Quote Anchor link
Tnx nu werkt mijn for loop goed :) alleen nu nog 1 vraagje

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
 
- SanThe -

- SanThe -

16/09/2006 15:24:00
Quote Anchor link
Er zit inderdaad nog iets niet goed volgens mij.

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

Leo

16/09/2006 15:27:00
Quote Anchor link
dan vern**kt die de layout, maar ik kan ook gewoon een limit op 100 zetten als maximaal aantal reacties, of meer reacties per pagina (2000 haal je alleen bij mega spam..)

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
 
- SanThe -

- SanThe -

16/09/2006 15:42:00
Quote Anchor link
Ik ben het script even geheel aan het doorspitten. Dus even geduld aub.
 
Robert Deiman

Robert Deiman

16/09/2006 15:43:00
Quote Anchor link
@Leo

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.
 
Leo

Leo

16/09/2006 15:45:00
Quote Anchor link
Kan ook, alleen had ik zelf geen idee hoe dat moest en vond ik dit zelf mooier (zoveel members zullen we in het begin toch niet hebben)

@SanThe, ik update even de code, ik heb wat aanpassingen gemaakt kwa links..
 
- SanThe -

- SanThe -

16/09/2006 16:12:00
Quote Anchor link
Ik heb ook een paar var-namen aangepast. Maar volgens mij moet dit werken.
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
<?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";  
         }
     }
 }

 ?>
 
Leo

Leo

16/09/2006 16:24:00
Quote Anchor link
Neej, een foutmelding @ http://www.worldofzelda.com/test.php
 
- SanThe -

- SanThe -

16/09/2006 16:27:00
Quote Anchor link
Echo je query eens.
 
Leo

Leo

16/09/2006 16:39:00
Quote Anchor link
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..
 
Leo

Leo

16/09/2006 16:42:00
Quote Anchor link
Nogsteeds hetzelfde, best raar

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
 
- SanThe -

- SanThe -

16/09/2006 16:55:00
Quote Anchor link
Je hebt wel mijn script gebruikt? Dan moet je de for() even vervangen door deze, dit ziet er wat netter uit want het zet spaties tussen de getallen.
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
<?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";  
         }
     }
 }

?>

Edit: Foutje er uit gehaald. Nu doet ie het waarschijnlijk wel goed.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Leo

Leo

16/09/2006 17:20:00
Quote Anchor link
Tnx SanThe, het werkt precies zoals ik wilde :)
 
- SanThe -

- SanThe -

16/09/2006 18:06:00
Quote Anchor link
Graag gedaan. ;-)
 



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.