Welkom, Gast. Je bent niet ingelogd.

php navigatie

Thomaz
'
Geplaatst op: 12 Feb 2007, 17:50
PimpCoins: 0
💸+
Bewerken Quote

Hallo allemaal,

Na aanleiding van het topic van HP dit topic.

Ik had een vraag, want lennard poste een code in dat topic. En ik heb er wat van proberen te maken. Alleen dat gaat totaal mis.

Wat ik dus wil, dat er niet meer dan 5 pagina's in de navigatie staan. (Dit klopt al als het goed is.) Maar ik wil ook dat je zelf kan instellen hoeveel resultaten er per pagina zijn.

Hoe maak je dit?

Ik heb tot nu toe:

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

                $query = "SELECT * FROM pb WHERE user='".$_SESSION['naam']."' && in_delete='nee' ORDER BY id DESC";  
                $result = mysql_query($query) or die (mysql_error()); 
                 
                $totaal = mysql_num_rows($result);    // Totaal aantal pagina's 
                $per_pagina = 1;
                
                $huidige = $_GET['p'];    // Pagina waar je nu op zit 
                
                echo '<a href="index.php?pagina='.$_GET['pagina'].'&p=1">&laquo;</a>'; 
                
                $achter = $totaal - $huidige; 
                
                $m = $achter < 2 ? 4 - $achter : 2; 
                
                for($i = ($huidige - $m  < 1 ? 1 : $huidige - $m), $k = 1; $k < 6 && $i <= $totaal; $i++, $k++) 
                { 
                     
                    if($huidige == $i) 
                        echo ' <b>'.$i.'</b>'; 
                    else 
                        echo ' <a href="index.php?pagina='.$_GET['pagina'].'&p='.$i.'">'.$i.'</a>'; 
                     
                } 
                
                echo ' <a href="index.php?pagina='.$_GET['pagina'].'&p='.$totaal.'">&raquo;</a>'; 


                

                $query = "SELECT * FROM pb WHERE user='".$_SESSION['naam']."' && in_delete='nee' ORDER BY id DESC LIMIT '".$per_pagina."','".$huidige."'";  
                $result = mysql_query($query) or die (mysql_error());  
                $mnr = mysql_num_rows($result);
                while ($sql = mysql_fetch_assoc($result))
                {

?>

Bvd.

Thomas

Modbreak

Volgende keer s.v.p. verder gaan in je oude topic.

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 12 Feb 2007, 17:58
PimpCoins: 0
💸+
Bewerken Quote

Je kan instellen hoeveel resultaten er weergeven worden door `LIMIT ...` te gebruiken achter je mysql querry, zo kan je er voor zorgen dat er bijvoorbeeld maar 30 resultaten per pagina worden weergeven.

HyperTesia
Webdeveloper
Geplaatst op: 12 Feb 2007, 18:07
PimpCoins: 0
💸+
Bewerken Quote

Moet je doen door LIMIT $beginwaarde, $max

en dan doe je als je bv 15 pagina's op een pag wilt
$max = 15;
en dan voor je beginwaarde is het $beginwaarde = $pagina * $max;
Snapje?

Thomaz
'
Geplaatst op: 12 Feb 2007, 18:21
PimpCoins: 0
💸+
Bewerken Quote

Sorry dat ik het zeg, maar ik snap er nog steeds niks van

Lennard
?
Geplaatst op: 12 Feb 2007, 18:38
PimpCoins: 0
💸+
Bewerken Quote

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
<?php 
$query = "SELECT * FROM pb WHERE user='".$_SESSION['naam']."' && in_delete='nee' ORDER BY id DESC";   
$result = mysql_query($query) or die (mysql_error());  
                 
$totaal = mysql_num_rows($result);    // Totaal aantal pagina's  
$per_pagina = 15; // Aantal resultaten per pagina
                 
$huidige = $_GET['p'];    // Pagina waar je nu op zit  
                 
echo '<a href="index.php?pagina='.$_GET['pagina'].'&p=1">&laquo;</a>';  
                 
$achter = $totaal - $huidige;  
                
$m = $achter < 2 ? 4 - $achter : 2;  
                
for($i = ($huidige - $m  < 1 ? 1 : $huidige - $m), $k = 1; $k < 6 && $i <= $totaal; $i++, $k++)  
{  
                      
    if($huidige == $i)  
        echo ' <b>'.$i.'</b>';  
    else  
        echo ' <a href="index.php?pagina='.$_GET['pagina'].'&p='.$i.'">'.$i.'</a>';  
                      
}  
                 
echo ' <a href="index.php?pagina='.$_GET['pagina'].'&p='.$totaal.'">&raquo;</a>';  

$begin = ( $huidige - 1 ) * $per_pagina;
$query = "SELECT * FROM pb WHERE user='".$_SESSION['naam']."' AND in_delete='nee' ORDER BY id DESC LIMIT ".$begin.",".$per_pagina;   
$result = mysql_query($query) or die (mysql_error());   

while ($rij = mysql_fetch_assoc($result)) 
{

    echo 'blaat';

}
?>

Zoiets?

Thomaz
'
Geplaatst op: 12 Feb 2007, 18:51
PimpCoins: 0
💸+
Bewerken Quote

Heel erg bedankt Na wat aanpassingen deed deze het Echt heel erg bedankt!!

Lennard
?
Geplaatst op: 12 Feb 2007, 20:32
PimpCoins: 0
💸+
Bewerken Quote

Thomaz schreef:

Heel erg bedankt Na wat aanpassingen deed deze het Echt heel erg bedankt!!

Alsjeblieft.

Thomaz
'
Geplaatst op: 12 Feb 2007, 21:04
PimpCoins: 0
💸+
Bewerken Quote

Lennard schreef:

[...]
Alsjeblieft.

Mag ik nog 1 vraagje stellen?

Hoe doe je dat, als er helemaal niets in de tabel staat, dat die dan dit weergeeft: << 1 >> en niet << >>. Heb al veel geprobeerd. 1 manier werkte. Maar dat was een hele foute manier. DUs weet jij hier iets op?

Lennard
?
Geplaatst op: 12 Feb 2007, 21:13
PimpCoins: 0
💸+
Bewerken Quote

Dat zou je zo kunnen doen:

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
<?php  
$query = "SELECT * FROM pb WHERE user='".$_SESSION['naam']."' && in_delete='nee' ORDER BY id DESC";    
$result = mysql_query($query) or die (mysql_error());   
 
$per_pagina = 15; // Aantal resultaten per pagina 
$totaal = mysql_num_rows($result) / $per_pagina;    // Totaal aantal pagina's   
                  
$huidige = $_GET['p'];    // Pagina waar je nu op zit   
                  
echo '<a href="index.php?pagina='.$_GET['pagina'].'&p=1">&laquo;</a>';   

if($totaal > 0)
{

    $achter = $totaal - $huidige;   
                     
    $m = $achter < 2 ? 4 - $achter : 2;   
                     
    for($i = ($huidige - $m  < 1 ? 1 : $huidige - $m), $k = 1; $k < 6 && $i <= $totaal; $i++, $k++)   
    {   
                           
        if($huidige == $i)   
            echo ' <b>'.$i.'</b>';   
        else   
            echo ' <a href="index.php?pagina='.$_GET['pagina'].'&p='.$i.'">'.$i.'</a>';   
                           
    }   

}
else
{
    
    echo ' <b>1</b>';

}
                  
echo ' <a href="index.php?pagina='.$_GET['pagina'].'&p='.$totaal.'">&raquo;</a>';   

$begin = ( $huidige - 1 ) * $per_pagina; 
$query = "SELECT * FROM pb WHERE user='".$_SESSION['naam']."' AND in_delete='nee' ORDER BY id DESC LIMIT ".$begin.",".$per_pagina;    
$result = mysql_query($query) or die (mysql_error());    

while ($rij = mysql_fetch_assoc($result))  
{ 

    echo 'blaat'; 

} 
?>

Thomaz
'
Geplaatst op: 12 Feb 2007, 22:15
PimpCoins: 0
💸+
Bewerken Quote

Oke bedankt. Als ik beter had gekeken had ik het zelf ook wel kunnen verzinnen

📫

Nieuw privébericht

🔥

Registreren


Login