Using session variables is probably the better way to do this since it allows you to store a lot more data on the server side and only pass the session token to the user as a cookie. The only problem is if the user has cookies disabled. This is a very small percentage of all users.
Using the session also means that you don't have to add the parameters to every link and every form on every page, and that it will still work if the user closes the page (not the browser), and then comes back later. I do this all the time when I'm searching for hotel deals.
Regarding the URL parameters, you should escape all parameters before passing them on to the user. Do this:
<?php
$url = "rooms.php?roomID=" . urlencode($value['room'])
. "&in=" . urlencode($checkin)
. "&out=" . urlencode($checkout)
?>
<a href="<?php echo $url ?>">...</a>
That way your page is not open to a cross-site-scripting attack.