[eluser]OverZealous[/eluser]
[quote author="The Mask" date="1257257311"]Am I missing something here? How come it displays 4,5 & 6?[/quote]
Because you are working with objects. Therefore, $x and $y both refer to the same object, $u. (Technically, $u also refers to an object, User. You could re-assign $u without affecting $x or $y, which would still point to the original User.)
When you call $u->get_where('id < 7'), you overwrite the results of the previous query. If you want different result sets, you need to instantiate different objects.
Code:
$x = new User();
$x->get_where('id < 4');
$y = new User();
$y->get_where('id < 7');
Now $x and $y refer to different objects. It is not necessary to store the result of a get() (in any of its forms), except for convenience in the case of related child objects.