Thanks Sheeri: Yes, you where right. It was because I was not opening the table first. Actually, I was using this statements from a MySQL GUI (MySQL Query Browser) so it doesn't work in this program (it doesn't keeps the table opened).
But when I use your example in the shell mode it works perfect. Have you ever tried to use this kind of statements using PHP?. It is because I would like to use it in a PHP script (I was exploring this function to make a navigator which sends me to the next record each time I click on a link generated from a MySQL query). Thanks a lot and very grateful with you, Alvaro. sheeri kritzer escribió: > Hi there, > > What did your MySQL error say? > > It looks like you didn't open the table. my example, which worked: > > CREATE TABLE `foo` ( > `id` int(11) NOT NULL auto_increment, > `bar` char(3) default NULL, > PRIMARY KEY (`id`), > KEY `idx_bar` (`bar`) > ) ENGINE=MyISAM DEFAULT CHARSET=latin1 | > > insert into foo (bar) VALUES > ('abc'),('def'),('qwe'),('ert'),('wer'),('tyu'),('asd'),('sdf'),('dfg'),('zxc'),('xcc'); > > and then: > > mysql> HANDLER foo open; > Query OK, 0 rows affected (0.00 sec) > > mysql> HANDLER foo READ idx_bar FIRST where bar='wer'; > +----+------+ > | id | bar | > +----+------+ > | 5 | wer | > +----+------+ > 1 row in set (0.00 sec) > > mysql> HANDLER foo READ idx_bar NEXT; > +----+------+ > | id | bar | > +----+------+ > | 11 | xcc | > +----+------+ > 1 row in set (0.00 sec) > > mysql> HANDLER foo READ idx_bar PREV; > +----+------+ > | id | bar | > +----+------+ > | 5 | wer | > +----+------+ > 1 row in set (0.00 sec) > > mysql> HANDLER foo READ idx_bar PREV; > +----+------+ > | id | bar | > +----+------+ > | 6 | tyu | > +----+------+ > 1 row in set (0.00 sec) > > Granted, that's using "previous" and "next" in an alphabetical sense. > I found that using the "id" index didn't work, and I had to create > another non-primary index on key for it to work. > > -Sheeri > > > On 2/8/06, Alvaro Cobo <[EMAIL PROTECTED]> wrote: >> Dear all: >> >> I have been exploring about this issue quite a lot, and find no solution: >> >> Platform: Debian, MySql 4.1.11, PHP 4.3.10-2, Apache. >> >> Is there any way I can retrieve a set of values depending in a where clause: >> >> For example: >> >> from a set of values in one field: 1,2,5,8,9,11,13 >> >> I'd like to retrieve a record (8) and also the previous one (5) and the >> next one (9) (so the record set would be: 5,8,9) >> >> I have found the "Handler" function in the Manual, but it and keeps >> giving me errors (I have also checked in the manual and it seems to work >> with MySql 4.1.x) >> >> /* --Start example >> --------------------- >> HANDLER tbl_sm04_indicador READ PK_indicador_id { FIRST | NEXT | PREV | >> LAST } >> >> WHERE PK_indicador_id=8 >> >> LIMIT 0, 3 >> ---------------------- >> --End example (I know, I am completely lost)*/ >> >> Does anybody has tried this function before?. >> Is it useful for the result I would like to accomplish? >> Could anybody could share an example of how to use this function? >> >> Thanks and best regards. >> >> Alvaro Cobo >> >> -- >> MySQL General Mailing List >> For list archives: http://lists.mysql.com/mysql >> To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] >> >> > >
signature.asc
Description: OpenPGP digital signature