| 
      
      
      From: Andrew S. <an...@me...> - 2001-02-07 07:03:12
      
     | 
| You mean code sorta like this:
    wilbur_init::header("Entries", $entID);
    print "<img src=3Dentrylist.png alt=3D\"List\"><br><hr>\n";
    $FORM{lim}|=3D 0;=09
    my $qq=3D"select blah,blah,blah=20
                   from entries
                   where blah=3Dblah';
    if($CONFIG{sqllimit} =3D=3D 1) {
        # this presuposes a limit statement in postgresql, but
        # I think it has them.  If it doesn't it can be coded
        # around anyway.
	$qq .=3D "limit $FORM{lim}, $PREF{pListNum}";
    } else {
	my $tlim =3D $FORM{lim} + $PREF{pListNum};
	$qq .=3D "limit $tlim";=20
    }
    my $q =3D $dbh->prepare($qq);
    $q->execute() or print STDERR "$0 $qq\n";
    if($CONFIG{sqllimit} =3D=3D 0) {
	my $tc=3D0;
	while($tc < $FORM{lim}) {
	      my ($blah, $blah) =3D $q->fetchrow_array();
	      $tc++;
	  }
    }
    while(my ($blah, $blah) =3D $q->fetchrow_array()) {
        wilbur::showentry($entID, $blah, $blah);
    }
    $q->finish();
    $qq =3D "select count(entID) from entries where entUID=3D$uID";
    $q =3D $dbh->prepare($qq);
    $q->execute() or print STDERR "$0 $qq\n";
    my ($ct) =3D $q->fetchrow_array();
    $q->finish();   =20
    if(($FORM{lim} - $PREF{pListNum}) >=3D 0 ) { #need prev=20
	my $newlim =3D $FORM{lim} - $PREF{pListNum};
	print "<< <a href=3D\"list.cgi?mode=3Dlist&lim=3D$newlim\">prev</a=
> ]";
    }
    my ($l, $lct) =3D (0, 1);=20
    if($ct > $PREF{pListNum}) {
	print "[";
	do {
	    print "<a href=3D\"list.cgi?mode=3Dlist&lim=3D$l\"> $lct </a>";
	    $l +=3D $PREF{pListNum};
	    $lct++;
	} while($l < $ct);
	print "]\n";
    }
    if(($FORM{lim} + $PREF{pListNum}) < $ct) { # on last already
	my $newlim =3D $FORM{lim} + $PREF{pListNum};
	print "[ <a href=3D\"list.cgi?mode=3Dlist&lim=3D$newlim\">next</a> >&=
gt;\n";
    }
This kind of code is extremely common in programs like this that may have=
 a large number of items to display, and it is desireable to break them u=
p into "pages."  Also, some have mentioned that a user might not want thi=
ngs broken up into pages.  The preference to not have any limit is also t=
here in the above code.
a
Claudio Santana wrote:
>=20
>    I think it would be better to slice this huge page in pages of n
> elements and then display just n elements and give to the user a next
> page link or button so we will just be selecting from the DB all the
> elements but the heavy operation that is generating the page will be
> done with a subset of all the elements. But in this case we should
> keep the state of the module, I mean the "next page" will mean
> different places every time we show it. So we could put that
> information in the "next page" link, we could include the query
> parameters and the next starting ID for the next page, and the same
> for "prev page" . Do I explain my self?
>=20
> Claudio Santana.
>=20
> --- Martin Lillepuu <ma...@li...> escribi=F3: > Thomas Sawyer
> wrote:
> >
> > > I have to get this working with this a large inventory. So I'm
> > looking
> > > at adding some selection criteria limitations to the ic.cgi
> > script. I'm
> > > thinking of adding limiting criteria where one has to select the
> > first
> > > and second letter of the search. (i.e. Aa, Ab, Ac...Zx, Zy, Zz)
> > How does
> > > this sound to you all? Any other ideas?
> >
> > maybe you should create a new parameter (eq. min_search_str_length)
> > in
> > configuration page, so people with small inventories (like me) can
> > set
> > it to 0 and in your case, it can be set to 2, 3 or whatever. then
> > add
> > code to ic.cgi that displays error message if search string is
> > shorter
> > than value specified in config. does this make any sense or am I
> > over-complicating things again? :)
> >
> > another idea to consider is grouping inventory items, so that you
> > first
> > select group and then only products belonging to specified group
> > are
> > displayed.
> >
> > idea #3 - limit displaying inventory items on one page (does
> > PostgreSQL
> > have equivalent to MySQL LIMIT?). Maybe implement this throughout
> > the
> > program + another option to config page?
> >
> > --
> > Martin Lillepuu | E-mail: ma...@li... | GSM: 051 56 450
> >
>=20
> _________________________________________________________
> Do You Yahoo!?
> Obtenga su direcci=F3n de correo-e gratis @yahoo.com
> en http://correo.espanol.yahoo.com
 |