El problema que creo que tienes es que especificas
$regi['e.nombre_esp'] cuando debería ser
$regi['nombre_esp'], sin el
e..
Aun así, la forma que tienes de hacerlo no es buena, lo mejor es que hicieses una reunión con las tres tablas y te ahorrarías muchas consultas.
Código PHP:
Ver original<?php
echo"<table border=0>";
or
die("Problemas en la conexion"); or
die("Problemas en la selección de la base de datos");$registros=mysql_query("select codigo,apellido,nombre,sexo,e.nombre_esp from doctores INNER JOIN doc_esp de ON doctores.codigo = doc_esp.codigo_doc
INNER JOIN especialidades e ON de.codigo_esp = e.codigo_esp
order by apellido",$conexion) or
{
if($reg['sexo']=='M' or $reg['sexo']=='m'){
echo"<tr>";
echo "<td>"."Dr.".$reg['apellido']." ".$reg['nombre']."</td>";
echo "</tr>";
}
else{
echo"<tr>";
echo "<td>"."Dra.".$reg['apellido']." ".$reg['nombre']."</td>";
}
echo"<td>";
echo $regi['nombre_esp']."</td>";
echo"</tr>";
}
echo"</table>";
?>