Причина в том, что это неправильно, потому что вы пытаетесь использовать php-код (переменные) в середине строки.Сначала вы должны закрыть строку и затем отобразить переменные:
echo "<td> <input name=\"need_delete[".$rows['id']."]\" type=\"checkbox\" id=\"checkbox[".$rows['id']."]\" value=\"".$rows['id']."\"> </td>";
В качестве альтернативы вы можете закрыть код PHP и заставить его интерпретировать как HTML (я предпочитаю так):
?><td> <input name="need_delete[<?php echo $rows['id']; ?>]" type="checkbox" id="checkbox[<?php echo $rows['id']; ?>]" value="<?php echo $rows['id']; ?>"> </td>";<?php