[php / mysql]Verdelen over meerdere pagina's

Pagina: 1
Acties:

  • codeweb
  • Registratie: Juni 2002
  • Laatst online: 01-09 11:50
k heb de volgende code waarbij hij aardig wat berichten uit de database haalt:
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
<?

echo "<body  topmargin='$margintop' leftmargin='$marginleft'>";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
if(empty($act)) {
?>
<table width='200' cellspacing='0' style='border-collapse: collapse' 
bordercolor='#111111'>
 <tr>
   <td class='lightbackcolor'><? echo "$shoutbox_name"; ?></td>
 </tr><tr> <td class='lightbackcolor'>
 <?
$query = mysql_query("SELECT * FROM $tablename ORDER BY id $order") or die (mysql_error());
while ($var = mysql_fetch_object($query)) {
if ($var->website == "No Website") {
}
else {
$website1 = "<a href='$var->website' target='_blank'>Website</a>";
}
echo "
<!-- Start $var->id ($var->name) -->
<table border='1' cellspacing='0' width='100%' cellpadding='0' 
style='border-collapse: collapse' bordercolor='#111111'>
<tr><td width='50%' align='left' class='darkbackcolor'>$var->name</td>
<td width='50%' align='right' class='darkbackcolor'>$website1</td></tr>
<tr>
       <td colspan='2' class='lightbackcolor'>$var->shout</td>

          </tr>
          <tr>
        <td colspan='2' class='lightbackcolor'>$var->date</td>
       </tr></table><br>
       <!-- End $var->id ($var->name) --> ";


}

?>


Zouden jullie me misschien kunnen helpen om dit over meerdere pagina's te krijgen? Want ik heb namelijk geen flauw idee hoe ik dit kan aanpakken |:(

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

www.mysql.com
LIMIT
tip: offset

Doet iets met Cloud (MS/IBM)


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Met een LIMIT clause in je query en een $_GET["page"] parameter moet je een heel eind komen (denk start = page * $num, limit wordt dan start, num).

Rustacean


  • codeweb
  • Registratie: Juni 2002
  • Laatst online: 01-09 11:50
je bedoelt dat ik het gewoon zo moet doen?
PHP:
1
2
3
4
$_GET["page"];
$start = page * $num;

$query = mysql_query("SELECT * FROM $tablename ORDER BY id $order LIMIT start, num ") or die (mysql_error());

Want als k dat doe; dan krijg ik:
code:
1
You have an error in your SQL syntax near 'start, num ' at line 1

  • Rashann
  • Registratie: Maart 2000
  • Laatst online: 24-08 07:20

Rashann

Zoek de hond...

codeweb schreef op 30 augustus 2002 @ 14:25:
je bedoelt dat ik het gewoon zo moet doen?
PHP:
1
2
3
4
$_GET["page"];
$start = page * $num;

$query = mysql_query("SELECT * FROM $tablename ORDER BY id $order LIMIT start, num ") or die (mysql_error());

Want als k dat doe; dan krijg ik:
code:
1
You have an error in your SQL syntax near 'start, num ' at line 1
Meen je dit?

start en num zijn je PHP variabelen... daar moet een $ voor!

If nothing is written below, I was the last to reply...


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

wat dat je van $ tekens ? bij start en num :X

Doet iets met Cloud (MS/IBM)


  • rickmans
  • Registratie: Juli 2001
  • Niet online

rickmans

twittert

even een klein stukje dat ik gebruik
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
    //mocht $van gedefinieerd zijn dan....
        if(!isset($van)) $van = 0;
        
    //nodig voor verbinding
    require ("config.inc.php");
    include ('ubb2.php');

    //verbinding maken met db
    $connection= mysql_connect($dbhost, $dbusername, $dbpassword);
    
    mysql_select_db($dbname, $connection);
    
    //code voor paginanummering
        //weer te geven aantal artikelen
    $tot = 5;
    
    //query maken    
    $result = mysql_query("SELECT id, titel, tekst, datum FROM nieuws ORDER BY id DESC LIMIT $van, $tot");
    $row = mysql_fetch_array($result);
      
    $sql = "SELECT id, titel, tekst, datum FROM nieuws";
    
    $query = mysql_query($sql) or die(mysql_error());
    
    //Het tellen der rijen 
    $num3 = mysql_num_rows($query);
    
    //Het delen der rijen 
    $num2 = $num3 / $tot;
    
    //afronden naar boven indien niet een geheel getal
    $num = ceil($num2); 
        
    //mocht je nou meer dan het $tot aangegeven aantal artikelen
    //hebben dan gaat dit in werking
    if ($num > 1) 
    {
    
        for ($i = 1; $i <= $num; $i++) 
        { 
            $van2 = ($i * $tot) - $tot; 
            if ($i == $page) 
            
            //de pagina's
            $pages[$i] = "$i"; 
            else 
            $pages[$i] = "<a href=\"$php_self?onderdeel=nieuws&page=$i&van=$van2&tot=$tot\" class=\"body\">$i</a>"; 
        } 
    
        // scheidingsteken | ingevoegd
        $pages = implode("<b> | </b>", $pages); 
        
        //Verwijzing naar vorige pagina
        $vorige = ($page-1) ? "<a href=\"$php_self?onderdeel=nieuws&page=" . ($page - 1) . "&van=" . ($van - $tot) . "&tot=$tot\" class=\"body\">&lt; Vorige</a>" : ""; 
        
        //verwijzing naar volgende pagina
        $volgende = ($page-$num) ? "<a href=\"$php_self?onderdeel=nieuws&page=" . ($page + 1) . "&van=" . ($van + $tot) . "&tot=$tot\" class=\"body\">Volgende &gt;</a>" : "";
        
        //mocht er nou én een vorige én een volgende pagina zijn
        //dan gaan we de navigatie maken
        if ($vorige && $volgende)
        {
            $navigation = "$vorige | $pages | $volgende"; 
        }
        else
        { 
            $navigation = "$vorige | $pages | $volgende"; 
        }
    } 
    
    // Laat de navigatie zien. Zoiets als dit: < Vorige | 1 | 2 | 3 | 4 | 5 | Volgende > 
    print"<div align=\"right\">\n";
    print $navigation;
    print"</div>\n";
    
    echo mysql_error(); 
            
            //beginnen weergave gegevens

Don't mind Rick


  • codeweb
  • Registratie: Juni 2002
  • Laatst online: 01-09 11:50
sorry, t lijkt wel of k niet wakker ben... 8)7 8)7

t werkt nu
Alleen nu het volgende
hoe kan ik hem dan laten linken naar volgende pagina's welke url moet ik daarvoor invoeren |:(

K ben echt een n00b :/

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

op de eerste page is je offset 0
dus wat zou je dan aan je 2e page als offset meegeven wie blaat.php?offset=XXXX

Doet iets met Cloud (MS/IBM)


  • RobzQ
  • Registratie: Februari 2000
  • Laatst online: 21-12-2020

RobzQ

greedy as a pig

Ik zou zeggen lees dit eens door: http://www.phpbuilder.com/columns/rod20000221.php3

Die doet ongeveer hetzelfde..

..so be wary of any man who keeps a pig farm..


  • codeweb
  • Registratie: Juni 2002
  • Laatst online: 01-09 11:50
bedankt voor die laatste link!
die maakte een hoop duidelijk :D
Pagina: 1