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]
>>
>>
> 
> 


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to