When you use [man]mysql_fetch_array/man an internal pointer to the result set is moved forward, so if you only have a single result set the second call. If you want your program to function the way it's writting you will need to us the [man]mysql_data_seek/man function to reset the pointer to 0 and start at the beginning of the list again.
However most people just change the way they write there code:
<?php
$prepaired_by = "<select name=\"prepaired_by\">";
$recieved_by = "<select name=\"recieved_by\">";
while ($row = mysql_fetch_array($results))
{
$prepaired_by .= "<option value=\""
. $row["id"] . "=\">"
. $row["employee_name"];
$recieved_by .= "<option value=\""
. $row["id"] . "=\">"
. $row["employee_name"];
}
$prepaired_by .= "</select>";
$recieved_by .= "</select>";
echo $prepaired_by;
echo $recieved_by;
?>