Como rellenar un listbox con php
Quiero comentar que apenas estoy entrando al lenguaje de php y estoy construyendo un sitio, en cual tiene un formulario y dentro de ese formulario tengo algunos combo box, como por ejemplo uno que se llama "cmbestados" que sirve para que el usuario seleccione el estado donde se ubica su ciudad, otro que se llama "cmbmateria" y también esta cargado con una lista de materias posibles, etc etc.
Mi duda es la siguiente:
Cuando presiono el botón "enviar" y falto algún dato por llenar entonces si el usuario ya había hecho su selección de algún combo, esta selección se pierde.
Como puedo hacer para que el combo respete la selección que había hecho el usuario, es decir que si ya había escogido por ejemplo "Sonora" en los estados, que el combo se ponga en "Sonora" y no que se vaya de nuevo a la primera opción, ¿en este caso "Aguas calientes"?
Y también como puedo con el valor de una variable, como puedo dejar al combo seleccionando el valor que tiene la variable, es decir que en la variable ya tengo "Zacatecas" como hago para que el combo se ponga en esa selección.