Cita: resulta que PHP me crea las etiquetas de cierre sin yo ponerlas
Te equivocas tremendamente: PHP no puede cambiar tu código si no se lo indicas y claramente no lo haces.
Estoy 100% seguro de que lo estás revisando con el navegador, dando "clic derecho y ver código fuente" ¿verdad?
Bueno, pues te comento que el navegador es quien "corrige" el HTML para que lo puedas entender así que no deberías extrañarte: es un comportamiento habitual.
Volviendo a tu problema:
Código PHP:
Ver original$table .="<tr>";
$table .="<form action=socios.php method=post>";
$table .="<td><input type=text name=id value=".$i['idSocios'].">";
$table .="<td><input type=text name=dni value=".$i['dni'].">";
$table .="<td><input type=text name=nombre value=".$i['nombre'].">";
$table .="<td><input type=text name=apellido value=".$i['apellido'].">";
$table .="<td><input type=text name=email value=".$i['email'].">";
$table .="<td><input type=text name=telefono value=".$i['telefono'].">";
$table .="<td><input type=submit name=update value=Actualizar>";
$table .="<td><input type=submit name=delete value=Eliminar>";
¿Sabes al menos algo de HTML básico?
Ahí jamás estás cerrando las celdas <td> con su respectivo </td> ¿o esperas a que se haga por arte de magia?
Por favor, primero aprende a escribir HTML correctamente y luego aprende a no echarle la culpa a los demás de tu propios errores.