odbc paging (prev.1.2.3.next)

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

  • Rusky
  • Registratie: December 2000
  • Laatst online: 19-02 12:21
ok.. ik ben bezig om gegevens uit een db te halen en die dan met behulp van paging neer te zetten.
Ik heb dit wel vaker met mysql gedaan en ging altijd prima. Nu het probleem ik heb een access database. deze roep ik aan met behulp van ODBC en deze kent geen LIMIT.

volgens mij gaat dit mis bij mijn query.. maar ik heb nu echt geen idee meer hoe dit op te lossen
hij geeft dubbele resultaten, en pagina 1 gaat niet goed.
ik heb hier nu een paar dagen op zitten kijken, maar zie het echt niet meer. En heb ook geen alternatief kunnen vinden op inet

deze code heb ik nu

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
$con = odbc_connect('MSAccessDriver','','');
$sql =  "(SELECT * FROM onderhoek WHERE $where LIKE '%$searchquery%')"; 

$exc = odbc_exec($con,$sql);

$count = num_rows($exc);
$x=0;
echo "aantal regels = $count<BR>";
odbc_free_result($exc);
        
if ($count == "0") 
{
    echo "
        <TD> &nbsp; </TD> <TD> Geen gegevens gevonden <TD>
    ";

} else {
                
    $limit = 20;  //aantal resultaten per pagina
                
    if (empty($offset)) {
            $offset=1;
        }

    $start = $offset + $limit;  
                
$sql2 = "(SELECT TOP $limit * FROM (SELECT TOP $start * FROM ";
$sql2 .="(SELECT * FROM onderhoek WHERE $where LIKE '%$searchquery%') ";
$sql2 .="ORDER BY id DESC)ORDER BY id)";

$exc2 = odbc_exec($con,$sql2);

while(odbc_fetch_row($exc2))
    {
    $id = odbc_result($exc2,"ID");
    $onderwerp = odbc_result($exc2,"ONDERWERP");
    $projectnaam = odbc_result($exc2,"PROJECTNAAM");
                    
    echo "$id -- $onderwerp $projectnaam<BR>";  
    }
                    
    echo "<BR><BR>";

if ($offset =! 0) {
$prevoffset = $offset - $limit;
echo "<A HREF=\"index.php?offset=$prevoffset&where=$where&searchquery=$searchquery\">PREV</A> &nbsp; \n"; }
                    
$pages = intval($count / $limit);
            
if ($count % $limit) {
$pages++;}

for ( $i=1; $i <= $pages-1; $i++) {
$newoffset = $limit * ($i-1);
echo "<A HREF=\"index.php?offset=$newoffset&where=$where&searchquery=$searchquery\">$i</A> &nbsp; \n"; }
echo "<A HREF=\"index.php?pagina=last&where=$where&searchquery=$searchquery\">$i</A> &nbsp; \n";
                    
if (!(($offset/$limit)==$pages) && $pages != 1) {
$newoffset = $offset + $limit;
echo "<A HREF=\"index.php?offset=$newoffset&where=$where&searchquery=$searchquery\">NEXT</A> &nbsp; \n"; }
        }

mijn pc


  • André
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:23

André

Analytics dude

Move van WEB naar PRG ;)

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:44
LIMIT is MySQL specifiek.
Access kent waarschijnlijk wel TOP

Een beetje zoeken in de Access manual kon ook wel geholpen hebben; verder is het ook niet de bedoeling om zomaar code neer te plempen in de hoop dat iemand het voor jou oplost. :)

https://fgheysels.github.io/


Dit topic is gesloten.