Ik heb een probleem
ik heb een script gevonden die werkte maar ik heb het aangepast.
dat er maar 3 items per pagina getoond worden maar dan loopt het mis kunnen jullie me helpen ?
PHP Code:
<?php
/************ pagina-systeem ************/
$pQuery = mysql_query("SELECT * FROM producten ORDER BY id desc");
$url = 'http://mijnsite.nl/index.php?naam=home';
$psysteem['reacties'] = mysql_num_rows($pQuery);
$psysteem['paginas'] = ceil($psysteem['reacties'] / 10);
if(isset($_GET['p']))
{
$psysteem['pagina'] = $_GET['p'];
$limit = $_GET['p'] * 10 - 10;
}else{
$psysteem['pagina'] = 1;
$limit = 1 * 10 - 10;
}
if($psysteem['pagina'] > ($psysteem['paginas'] - 2))
{
$psysteem['begin'] = $psysteem['paginas'] - 4;
}elseif(($psysteem['paginas'] > 5) && ($psysteem['pagina'] > 3))
{
$psysteem['begin'] = $psysteem['pagina'] - 2;
}else{
$psysteem['begin'] = 1;
}
$psysteem['i'] = 0;
if($psysteem['paginas'] > 5)
{
$psysteem['max'] = 5;
}else{
$psysteem['max'] = $psysteem['paginas'] - 1;
$psysteem['begin'] = 1;
}
$pSys = '';
$pSys .= '<a style="padding: 4px;" href="'.$url.'&p=1">«</a>';
for($p=$psysteem['begin'];$psysteem['i']<=$psysteem['max'];$p++)
{
if($p == $psysteem['pagina'])
{
$pSys .= '<span style="padding: 4px;">'.$p.'</span>';
}else{
$pSys .= '<a style="padding: 4px;" href="'.$url.'&p='.$p.'">'.$p.'</a>';
}
$psysteem['i']++;
}
$pSys .= '<a style="padding: 4px;" href="'.$url.'?p='.$psysteem['paginas'].'">»</a><br />';
/************ select ******************/
$query = "SELECT * FROM producten ORDER BY id desc LIMIT $limit,3";
//$query = "SELECT * FROM tabel where ? = ?";
// resultaat maken door query uit te voeren met onderstaand commando
$result = mysql_query($query) or trigger_error( mysql_error() );
//Alle rijen overlopen in een loop
while($row = mysql_fetch_assoc($result)){
?>
<?php echo $row['naam']; ?>
<? }?>
<? echo $pSys; ?>
- pagina nummering
-
28-06-2012, 20:51 #1
- Berichten
- 320
- Lid sinds
- 15 Jaar
pagina nummering
-
-
28-06-2012, 21:22 #2
- Berichten
- 136
- Lid sinds
- 15 Jaar
Re: pagina nummering
Hee fleur,
in het script zelf moet je ook nog het aantal aanpassen zoals je in de mysql_query hebt gedaan. hieronder een aangepaste versie waarin het iets makkelijker is om het aan te passen.
PHP Code:<?php
/************ pagina-systeem ************/
$pQuery = mysql_query("SELECT * FROM producten ORDER BY id desc");
$psysteem['perpagina'] = 3;
$url = 'http://mijnsite.nl/index.php?naam=home';
$psysteem['reacties'] = mysql_num_rows($pQuery);
$psysteem['paginas'] = ceil($psysteem['reacties'] / $psysteem['perpagina']);
if(isset($_GET['p']))
{
$psysteem['pagina'] = $_GET['p'];
$limit = $_GET['p'] * $psysteem['perpagina'] - $psysteem['perpagina'];
}else{
$psysteem['pagina'] = 1;
$limit = 1;
}
if($psysteem['pagina'] > ($psysteem['paginas'] - 2))
{
$psysteem['begin'] = $psysteem['paginas'] - 4;
}elseif(($psysteem['paginas'] > 5) && ($psysteem['pagina'] > 3))
{
$psysteem['begin'] = $psysteem['pagina'] - 2;
}else{
$psysteem['begin'] = 1;
}
$psysteem['i'] = 0;
if($psysteem['paginas'] > 5)
{
$psysteem['max'] = 5;
}else{
$psysteem['max'] = $psysteem['paginas'] - 1;
$psysteem['begin'] = 1;
}
$pSys = '';
$pSys .= '<a style="padding: 4px;" href="'.$url.'&p=1">«</a>';
for($p=$psysteem['begin'];$psysteem['i']<=$psysteem['max'];$p++)
{
if($p == $psysteem['pagina'])
{
$pSys .= '<span style="padding: 4px;">'.$p.'</span>';
}else{
$pSys .= '<a style="padding: 4px;" href="'.$url.'&p='.$p.'">'.$p.'</a>';
}
$psysteem['i']++;
}
$pSys .= '<a style="padding: 4px;" href="'.$url.'?p='.$psysteem['paginas'].'">»</a><br />';
/************ select ******************/
$query = "SELECT * FROM producten ORDER BY id desc LIMIT ".$limit.",".$psysteem['perpagina'];
//$query = "SELECT * FROM tabel where ? = ?";
// resultaat maken door query uit te voeren met onderstaand commando
$result = mysql_query($query) or trigger_error( mysql_error() );
//Alle rijen overlopen in een loop
while($row = mysql_fetch_assoc($result)){
?>
<?php echo $row['naam']; ?>
<? }?>
<? echo $pSys; ?>
in ieder geval, boven in staat nu een nieuwe variabele: $psysteem['perpagina'] dit is het aantal reacties per pagina (op dit moment dus 3). Hoop dat je er iets aan hebt.
Mvg,
Erik Meulman
-
28-06-2012, 21:25 #3
- Berichten
- 320
- Lid sinds
- 15 Jaar
Re: pagina nummering
het werkt zeerwel bedankt :)
-
28-06-2012, 21:42 #4
- Berichten
- 136
- Lid sinds
- 15 Jaar
Re: pagina nummering
Geen dank
-
28-06-2012, 21:49 #5
- Berichten
- 554
- Lid sinds
- 15 Jaar
Re: pagina nummering
Hoi Fleur,
Ik zag nog een kleine verbetering in het script dat je gebruikt.
Een SELECT * over de hele tabel, puur voor het tellen van de paginanummers, is overbodig.
Zeker als er veel resultaten zijn kan je website langzamer laden.
Omdat je daarna (onderaan) nog een keer een select doet, is dit eigenlijk dubbelop.
Ik heb een voorbeeld geschreven (heb hem niet getest ivm de tijd) waarbij alles in 1 query staat.
Kijk maar of je er wat aan hebt.
PHP Code:<?php
//Welke pagina zitten we nu?
$pagina = intval($_GET['p']);
//Hoeveel items per pagina?
$perPagina = 3;
//Url waar het systeem op werkt
$url = 'http://mijnsite.nl/index.php?naam=home';
/************ pagina-systeem ************/
//Voer limieten in IN de sql query, is een stuk sneller naarmate je website groeit!
$result = mysql_query("SELECT SQL_CALC_FOUND_ROWS * FROM producten ORDER BY id desc LIMIT".($pagina*$perPagina).','.$perPagina);
//Hoogste pagina berekenen, via FOUND_ROWS methode het totaal (zonder limiet) opvragen
$aantal= mysql_result(mysql_query("SELECT FOUND_ROWS()"),0);
$maxPag = ceil($aantal/$perPagina);
//Paginanummering loopt van maximaal (huidig-3) tot (huidig+3)
$begin = max(1,$pagina-3);
$eind = min($maxPag,$pagina+3);
//Pagina's weergeven
$pSys = '<a style="padding: 4px;" href="'.$url.'&p=1">«</a>';
for($p=($begin-1);$p<$eind;$p++) {
$nummer = $p+1; // (loop begint bij 0, paginas vanaf 1, corrigeer)
if($nummer == $pagina) {
$pSys .= '<span style="padding: 4px;">'.$nummer.'</span>';
} else {
$pSys .= '<a style="padding: 4px;" href="'.$url.'&p='.$nummer.'">'.$nummer.'</a>';
}
}
$pSys .= '<a style="padding: 4px;" href="'.$url.'?p='.$maxPag .'">»</a><br />';
/************ verwerk ******************/
//Alle rijen overlopen in een loop
while($row = mysql_fetch_assoc($result)){
echo $row['naam'];
}
//Pagina systeem weergeven
echo $pSys;
?>
Steven
-
29-06-2012, 06:53 #6
- Berichten
- 320
- Lid sinds
- 15 Jaar
Re: pagina nummering
erik ik heb de aanpassing nog eens gestest maar de inhoud klopt niet van de pagina.
toch bedankt voor de hulp
steven bedankt voor de hulp ik krijg een error
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/svcreation/domains/svcreations.be/public_html/meubels/index.php on line 354
-
30-06-2012, 09:31 #7
- Berichten
- 554
- Lid sinds
- 15 Jaar
Re: pagina nummering
erik ik heb de aanpassing nog eens gestest maar de inhoud klopt niet van de pagina.
toch bedankt voor de hulp
steven bedankt voor de hulp ik krijg een error
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/svcreation/domains/svcreations.be/public_html/meubels/index.php on line 354
PHP Code:<?php
//Welke pagina zitten we nu?
$pagina = intval($_GET['p']);
//Hoeveel items per pagina?
$perPagina = 3;
//Url waar het systeem op werkt
$url = 'http://mijnsite.nl/index.php?naam=home';
/************ pagina-systeem ************/
//Voer limieten in IN de sql query, is een stuk sneller naarmate je website groeit!
$result = mysql_query("SELECT SQL_CALC_FOUND_ROWS * FROM producten ORDER BY id desc LIMIT".($pagina*$perPagina).','.$perPagina);
//Alle rijen overlopen in een loop
while($row = mysql_fetch_assoc($result)){
echo $row['naam'];
}
//Hoogste pagina berekenen, via FOUND_ROWS methode het totaal (zonder limiet) opvragen
$aantal= mysql_result(mysql_query("SELECT FOUND_ROWS()"),0);
$maxPag = ceil($aantal/$perPagina);
//Paginanummering loopt van maximaal (huidig-3) tot (huidig+3)
$begin = max(1,$pagina-3);
$eind = min($maxPag,$pagina+3);
//Pagina's weergeven
$pSys = '<a style="padding: 4px;" href="'.$url.'&p=1">«</a>';
for($p=($begin-1);$p<$eind;$p++) {
$nummer = $p+1; // (loop begint bij 0, paginas vanaf 1, corrigeer)
if($nummer == $pagina) {
$pSys .= '<span style="padding: 4px;">'.$nummer.'</span>';
} else {
$pSys .= '<a style="padding: 4px;" href="'.$url.'&p='.$nummer.'">'.$nummer.'</a>';
}
}
$pSys .= '<a style="padding: 4px;" href="'.$url.'?p='.$maxPag .'">»</a><br />';
//Pagina systeem weergeven
echo $pSys;
?>
-
09-07-2012, 20:51 #8
- Berichten
- 320
- Lid sinds
- 15 Jaar
Re: pagina nummering
bedankt steven maar ik krijg steeds een error
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic