Se trata de aplicar a la hora de componer tus option de tu select la propiedad "selected" cuando el dato que estás representadon vía tu bucle (de datos que obtienes de una BD o de una lectura de un array simple .. etc) y si el dato que se está representando no es el que debemos seleccionar (pre) .. no usamos el "selected":
Código PHP:
while ($row=mysql_fetch_array($consulta)){
if ($row['dato'] == $_POST['dato']){
echo "<option value=\"".$row['dato']."\" selected>".$row['descripcion']."</option>";
} else {
echo "<option value=\"".$row['dato']."\">".$row['descripcion']."</option>";
}
}
Siendo por ejemplo $_POST['dato'] el valor que queremos pre-establecer (ejemplo típico de formulario que se envia a si mismo y queremos dejar el valor que seleccionamos en un primer instante).
Un saludo,