Thanks for the suggestions
I know this is not difficult and that was what's annoying me.
The missing commas on the example was not the issue, the real code has commas.
The options below all work. I discovered the problem is php does not like it (for the first two options) if the ending "; is on the same line as the order by.
Option 1
<?
$query ="select item, number, description
from test_table
where item = '$item'
order by '$sort_order' '$sort_type'
";
?>
Option 2 chosen approach
<?
$query ="select item, number, description
from test_table
where item = '$item'
order by $sort_order sort_type
";
?>
Option 3
<?
$query ="select item, number, description
from test_table
where item = '$item'
ORDER BY '$sort_order' ".$sort_type." ";
?>