aantal uitlezen op pagina

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mitch

Mitch

04/02/2010 14:27:00
Quote Anchor link
Hallo,

ik wil graag dat hij 10 restulaten op een pagina uit leest.
of 15 in iedergeval dat ik dat kan aan passen.
dus dat je zo iets heb:

result 1
result 2
result 3
result 4
result 5
<- 1-2-3 ->

even makkelijk gezegt,
hoe kan ik dit het beste doen?
Alvast bedankt.

Greets Mitch
 
PHP hulp

PHP hulp

23/11/2024 13:33:21
 
Pepijn

Pepijn

04/02/2010 14:36:00
Quote Anchor link
ORDER BY id DESC LIMIT 0, 10

Dan laat je de eerste 10 resultaten zien
 
Mitch

Mitch

04/02/2010 17:34:00
Quote Anchor link
Ok,
ik ben aan het kijken hoe ik dit moet doen.
tot nu to heb ik het volgende:

Maar er is een probleem.
bij pagina 0 leest hij er 2 uit
bij pagina 1 leest hij er 4 uit
bij pagina 2 leest hij er 6 uit

wat doe ik verkeerd? xD

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
<?php
$limitpage
= 2;

$sql2 = "SELECT * FROM logboek";
$query2 = mysql_query($sql2) or die (mysql_error ());
$num_rows = mysql_num_rows($query2);

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


$limit = $page * $limitpage;
$limit2 = $limit + $limitpage;

$sql = "SELECT * FROM logboek ORDER BY id DESC LIMIT $limit, $limit2";
$query = mysql_query($sql) or die (mysql_error ());
if(mysql_num_rows($query) == 0){
    echo 'Geen log bestanden in het logboek.<br>';
}
else{
    echo '<table width="100%">
    <tr><td style=" border-width: 0px 0px 1px 0px; border-style: none none dashed none;">Datum</td><td style=" border-width: 0px 0px 1px 0px; border-style: none none dashed none;">Omschrijving</td><td style=" border-width: 0px 0px 1px 0px; border-style: none none dashed none;">IP</td></tr>'
;
    while($row = mysql_fetch_assoc($query)){
        echo '<tr><td style=" border-width: 0px 0px 1px 0px; border-style: none none dashed none;">'.$row['datum'].'</td><td style=" border-width: 0px 0px 1px 0px; border-style: none none dashed none;">'.$row['omschrijving'].'</td><td style=" border-width: 0px 0px 1px 0px; border-style: none none dashed none;">'.$row['ip'].'</td></tr>';
        }

    echo '</table>';
}

echo '<center>';
$backpage = $_GET['page'] - 1;
if(!$_GET['page'] <= 0){
echo ' <a href="?page='.$backpage.'"><<</a> ';
}

$page2 = $num_rows  / $limitpage;
$page2 = $page2 - 1;
$page3 = $num_rows  / $limitpage - 2;
for ( $counter = 0; $counter <= floor($page2); $counter += 1) {

if($_GET['page'] == $counter){
echo ' <a href="?page='.$counter.'"><u><b>'.$counter.'</b></u></a> ';
}
else{
echo ' <a href="?page='.$counter.'">'.$counter.'</a> ';    
}
}

$nextpage = $_GET['page'] + 1;
if($_GET['page']  <= floor($page3)){
echo ' <a href="?page='.$nextpage.'"> >> </a> ';
}

echo '</center>';
echo '<br><br>berekening limit: '.$page.' x '.$limitpage.' = '.$limit.'<br>';
echo 'berekening limit2: '.$limit.' + '.$limitpage.' = '.$limit2.'<br>';
echo $sql;
?>
 
Jasper Geelen

Jasper Geelen

04/02/2010 18:52:00
Quote Anchor link
Probeer eens in plaats van
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$limit
= $page * $limitpage;
?>

dit te gebruiken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$limit
= ($page - 1) * $limitpage;
?>


Ook klopt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$limit2
= $limit + $limitpage;
?>

volgens mij niet helemaal. Daardoor gaat ie op elke pagina steeds meer weergeven omdat hij het pagina nummer + de hoeveelheid per pagina gaat weergeven.

Sidenote: Ben zelf ook een beginner met PHP dus wat ik hier zeg kan compleet verkeerd zijn..if so: excuses daarvoor!

Edit:
Zie dat je $limit2 nog verderop in je script gebruikt, dus zonder dat om te gooien is het 't makkelijkst denk ik om je $sql te veranderen in
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= "SELECT * FROM logboek ORDER BY id DESC LIMIT $limit, $limitpage";
?>

$limitpage is dan uiteindelijk de hoeveelheid die je op 1 pagina wilt laten weergeven natuurlijk.
Gewijzigd op 01/01/1970 01:00:00 door Jasper Geelen
 
- SanThe -

- SanThe -

04/02/2010 18:58:00
 
Mitch

Mitch

04/02/2010 21:18:00
Quote Anchor link
Maar het rare is...
als ik naar pagina 1 ga dan leest hij er 4 uit, en de SQL =
SELECT * FROM logboek ORDER BY id DESC LIMIT 2, 4

Dat is toch raar? xD :P


Dankje santhe, maar ik wil graag mijn script werkend krijgen :)
 
Wim E

Wim E

04/02/2010 21:29:00
Quote Anchor link
heb je ergens live voorbeeld?
 
Mitch

Mitch

04/02/2010 21:51:00
Quote Anchor link
Ik heb het al.

De sql moet zo:

$sql = "SELECT * FROM logboek ORDER BY id DESC LIMIT $limit, $limitpage";

Greets Mitch :D
Gewijzigd op 01/01/1970 01:00:00 door Mitch
 
Wim E

Wim E

04/02/2010 23:24:00
Quote Anchor link
Heb je zelf al eens gekeken naar wat er met je query gebeurd?
Snap je zelf het principe van die limit?
Je ziet dat, wanneer de achterste cijfer wordt opgehoogd, die hoeveelheid berichten ook worden weergeven.

LIMIT <nummer1>, <nummer2>

Met andere woorden.
Je hebt een limit van 2 items per overzicht (voorbeeld).
Wat je wilt hebben is dat hij op pagina 3 enkel laat zien, de 2 items
Dus je moet de pagina * de limit doen.
Dan heb je het startpunt <nummer1>.
nummer2 is zeg maar de hoeveelheid wanneer hij weer moet stoppen.
Dus als jij zegt 4,6 zal hij starten bij 4 en 6 items laten zien.

Ps. Stel ik heb het verkeerd uitgelegd, corrigeer me dan aub :-) ben ook maar een mens ^^
 
Yorick17

yorick17

04/02/2010 23:31:00
Quote Anchor link
gaat helemaal goed zo alleen had ik het zelf geloof ik anders gedaan.
 
Wim E

Wim E

04/02/2010 23:41:00
Quote Anchor link
Vertel:)
 



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.