Hi
> mysql> select id,cat from table where cat=(select cat from table where id=51);
> +---------+------+
> | id | cat |
> +---------+------+
> | 40 | FLK |
> | 41 | FLK |
> | 42 | FLK |
> | 44 | FLK |
> | 45 | FLK |
> | 46 | FLK |
> | 47 | FLK |
> | 48 | FLK |
> | 49 | FLK |
> | 50 | FLK |
> | 51 | FLK |
> | 52 | FLK |
> | 53 | FLK |
> | 54 | FLK |
> | 55 | FLK |
> | 56 | FLK |
> | 57 | FLK |
> | 58 | FLK |
> | 59 | FLK |
> | 60 | FLK |
> +---------+------+
> 20 rows in set (0.02 sec)
> now I can select the whole cat when I enter an ID that is fine! but the query
> should
> stop at id=$id or in other words in the end it should POINT to id=$id
> in the above example the last record would be the record with id=51
> do I need another SELECT here?
If I understand that correctly, you only need to add the extra condition
to the WHERE clause of the main query. So:
SELECT id, name, cat FROM table
WHERE cat = (SELECT cat FROM table WHERE id = $ID) AND id <= $ID;
This should display all rows, before and including the row with the same
'cat' as 'id' has. For your example of $ID = 51 it should display:
+---------+------+
| id | cat |
+---------+------+
| 40 | FLK |
| 41 | FLK |
| 42 | FLK |
| 44 | FLK |
| 45 | FLK |
| 46 | FLK |
| 47 | FLK |
| 48 | FLK |
| 49 | FLK |
| 50 | FLK |
| 51 | FLK |
+---------+------+
Niel
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php