You cant actually set the size in characters due to proportional fonts(characters are in various sizes). Only pixel or percent size is allowed when using <td>'s width-parameter.
In your table, set the width of <td>'s inside first <tr></tr>. The other <td>'s will be the same size...
(Im a poor explainer, copy this and you get the drift...)
...
if (isset($_GET[$row["ID"]])=='yes')
{
echo '<table border="0" cellpadding="1" cellspacing="0" >';
echo '<tr><td>';
echo '<table border="2" cellpadding="0" cellspacing="1" width="480">';
echo '</tr></td>';
echo '<tr>';
echo '<td width="50" bgcolor="white">id: </td>';
echo '<td width="100" bgcolor="white">'.$row["ID"].'</td>';
echo '</tr>';
echo '<tr>';
echo '<td bgcolor="white">sp: </td>';
echo '<td bgcolor="white">'.$row["sp"].'</td>';
echo '</tr>';
echo '<tr>';
echo '<td bgcolor="white">me:</td>';
echo '<td bgcolor="white">'.$row["me"] .'</td>';
echo '</tr> ';
echo '<td bgcolor="white"></td>';
echo '</table>';
}
}
}
...