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 |