Para llenar el combo lo que haces es seleccionar via un query, luego ciclas por todos los resultados y vas creando tu combo ej:
Código PHP:
<select name="select">
<?php
$sql = "SELECT codigo, materia FROM Materias";
$result = mysql_query( $sql );
$opt = '<option value="%s">%s</option>';
while( $row = mysql_fetch_array( $result ) ) {
echo sprintf( $opt, $row[0], $row[1] );
}
?>
</select>
Para lo segundo si el codigo esta como valor puedes agregarle al select que te actualize ej:
Código HTML:
<input type="text" name="codigo" id="codigo" />
<select onchange="document.getElementById('codigo').value=this.options[this.selectedIndex].value">
</select>
Saludos.