Question: say I have this

```
$result =  mysql_query('SELECT views FROM post ORDER BY views ASC');

```

and I want to use the value at index 30 I assumed I would use

```
mysql_data_seek($result, 30);
$useableResult = mysql_fetch_row($result);
echo $useableResult . '<br/>';

```

But that is returning my whole table

What have I got wrong?

Edit: Woops, I actually have

```
mysql_data_seek($result, 30);
while($row = mysql_fetch_row($result)){
    echo $row['views'] . '<br/>';
}

```

Answer: 
Simply use an SQL WHERE clause.

```
$result = mysql_query('SELECT views FROM post WHERE ID=30')

```

If you don't want to go by ID but instead want the 30th item that would be returned you can use a LIMIT min, max:

```
$result = mysql_query('SELECT views FROM post LIMIT 30, 1')

```

In both cases your ORDER BY commands become unnecessary.

Here is a [good usage example of the LIMIT command](http://www.php-mysql-tutorial.com/wikis/php-tutorial/paging-using-php.aspx) for doing paging on large record sets.
Are you sure there are 30 elements in $result? You might want to check to see if 30 > mysql\_num\_rows().