Toon posts:

[PHP]Nieuwsarchief2

Pagina: 1
Acties:
  • 36 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik wilde dus een nieuwsarchief maken met daarin per pagina maximaal 30 records. Ik heb op dit forum gelezen dat dat het snelste ging met 'LIMIT'. Nu wilde ikd an onderaan het elke pagina vorige en volgende. Alleen op de eerste pagina geen vorige en op de laatste pagina geen volgende. Nu heb ik de volgende 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
<?php
elseif(isset($_GET[archive])) {

$max = 30; //hoeveel berichten er op 1 pagina mogen komen.

echo"layout";

$rtel/=$max;     
  
if (empty($pagina)) $pagina=1;        
  $van=($pagina-1)*$max;     
  
if ($pagina > ceil($rtel)) $pagina=1;  
  $paginas = array();     
for ($i = 1; $i <= ceil($rtel); $i++) { 

if ($pagina == $i)     
      $paginas[$i] = "<b>$i</b>";     

else     
      $paginas[$i] = "<a href="index.php?archive=1"."&pagina=$i">$i</a>";     
}     
   
  $paginas = implode(" | ", $paginas);     
  $vorige = ($pagina-1) ? "<a href="index.php?archive=1&pagina=" . ($pagina - 1)     
. "">< Vorige</a>" : "";     
  $volgende = ($pagina-ceil($rtel)) ? "<a href="index.php?archive=1&pagina=" .     
($pagina + 1) . "">Volgende ></a>" : "";     

if ($vorige && $volgende) {     
        
    $navigatie = (" 
    $vorige | $paginas     
     | $volgende");     
      
} else {     
        
    $navigatie = ("$vorige | $volgende");     
}     
  
$query = mysql_query("SELECT * FROM nieuws ORDER BY id DESC LIMIT $van, $max");      
    
while ($list = mysql_fetch_object($query)) {
  
$result = mysql_num_rows(mysql_query("SELECT * FROM nieuwsreactie WHERE replyid = $list->id"));

echo"layout records";

}

echo"$navigatie";

} else {
Nieuwsindex.
?>


Nu gaat er het volgende fout. Als ik intyp in de adresbalk &pagina=3 of 4 of 5 enz dan pakt hij deze pagona's maar ik zie geen vorige knop. Verder als je bij &pagina=1 zit en drukt op volgende kom je mooi bij 2 terecht als je dan op volgende wil drukken gaat ie weer naar &pagina=2.

Als ik nu naar &pagina=-5 ga dan krijg ik wel vorige en volgende.

Weet iemand wat ik hier fout doe?

[ Voor 11% gewijzigd door Verwijderd op 13-01-2004 22:59 ]


  • Skaah
  • Registratie: Juni 2001
  • Niet online
Je code is bijna niet te lezen. Kun je wat tabben enzo in je ifjes?
[edit]

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
                $docContents .= "Gezocht naar: <b>".stripslashes($_GET['q'])."</b>:<br />Resultaten ";
                $docContents .= (PAGE > 1) ? ('<a href="search.php?q='.addslashes($_GET['q']).'&page='.(PAGE-1).'">vorige</a> ') : ('vorige ');
                for ($k = 1; $k < (ceil(mysql_num_rows($result1)/PERPAGE)+1); $k++) {
                        if ($k == PAGE) { $docContents .= '<b>'; }
                        $docContents .= '<a href="search.php?q='.addslashes($_GET['q']).'&page='.$k.'">';
                        $docContents .= ((($k-1) * PERPAGE)+1);
                        $docContents .= '-';
                        $docContents .= ($k*PERPAGE > mysql_num_rows($result1)) ? mysql_num_rows($result1) : ($k*PERPAGE);
                        $docContents .= '</a> ';
                        if ($k == PAGE) { $docContents .= '</b>'; }
                }
                $docContents .= (PAGE < ceil(mysql_num_rows($result1)/PERPAGE)) ? (' <a href="search.php?q='.addslashes($_GET['q']).'&page='.(PAGE+1).'">volgende</a> ') : (' volgende');
                $docContents .= '<hr />';


Een stukje uit mijn search-'engine' met hetzelfde (perpagina) systeem...

hier om het script in actie te zien

[ Voor 91% gewijzigd door Skaah op 13-01-2004 21:54 ]


  • BrZ
  • Registratie: Maart 2000
  • Laatst online: 27-05 08:35

BrZ

PHP:
1
2
3
4
$vorige = ($pagina-1) ? "<a href="index.php?archive=1&pagina=" . ($pagina - 1)     
. "">< Vorige</a>" : "";     
  $volgende = ($pagina-ceil($rtel)) ? "<a href="index.php?archive=1&pagina=" .     
($pagina + 1) . "">Volgende ></a>" : "";


Wat je hier doet klopt niet echt. ($pagina-1) en ($pagina-ceil($rtel)) zouden true of false moeten geven, dus waarschijnlijk bedoel je: ($pagina==1) en ($pagina==ceil($rtel)) ?

[ Voor 18% gewijzigd door BrZ op 14-01-2004 00:01 ]


Verwijderd

Topicstarter
BrZ schreef op 14 januari 2004 @ 00:01:
PHP:
1
2
3
4
$vorige = ($pagina-1) ? "<a href="index.php?archive=1&pagina=" . ($pagina - 1)     
. "">< Vorige</a>" : "";     
  $volgende = ($pagina-ceil($rtel)) ? "<a href="index.php?archive=1&pagina=" .     
($pagina + 1) . "">Volgende ></a>" : "";


Wat je hier doet klopt niet echt. ($pagina-1) en ($pagina-ceil($rtel)) zouden true of false moeten geven, dus waarschijnlijk bedoel je: ($pagina==1) en ($pagina==ceil($rtel)) ?
Hmm als ik verander wat jij zegt krijg ik in men nieuwsarchief
alleen de link vorige naar &pagina=0.
Voor de rest doet ie helemaal niks meer :).

[ Voor 13% gewijzigd door Verwijderd op 14-01-2004 00:43 ]


  • BrZ
  • Registratie: Maart 2000
  • Laatst online: 27-05 08:35

BrZ

ehm, moet ik het wel goed zeggen ;)
($pagina>1) en ($pagina<ceil($rtel)) :)

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Je moet ook niet veranderen in wat hij zegt, maar nadenken wat hij zegt.
Je $pagina - 1 levert een getal op right? Dus wat heb je als je
PHP:
1
if( $pagina -1 ) { }
doet? Juist, iets wat niet uitgevoert wordt als $pagina gelijk aan 1 is. Hetzelfde voor $pagina - ceil( $rtel ). Dit levert false op als $pagina gelijk is aan $rtel.


Nouja, er is je nu wel vaak genoeg vertelt over hoe je een topic moet openen, dat je zelf moet debuggen enzovoorts, problemen moet isoleren. Vandaar dat ik deze ook maar dicht zet.
Succes met je Nieuwsarchief zelf coden :)
Pagina: 1

Dit topic is gesloten.