Yo hago algo como esto, en mi formulario de búsqueda tengo dos campos, categoría (donde uso el control <select>) y un campo para que ingresen la palabra a buscar pues bien, los datos se envían por $_GET, entonces para llenar nuevamente el select y que permanezca seleccionada la opción que se eligió al hacer la búsqueda haces algo como esto:
Código PHP:
<?php
$categoria = $_GET['categoria'];
?>
<select name="categoria">
<?php
$sql = mysql_query("SELECT * FROM categorias ORDER BY idcat ASC");
while($row = mysql_fetch_array($sql)) {
$cat = $row['categoria'];
?>
<option value="<?=$cat?>" <?php if($cat == $categoria) echo "selected"; ?>><?=$cat?></option>
<?php
}
?>
</select>
Como te darás cuenta dentro del <option> comparamos que el valor recibido del formulario sea igual a una de las opciones que contenga ese select, si la encuentra quedará seleccionada (selected).
Espero que eso te sirva.
Saludos.