My teacher said that each physical disk has a table of i-nodes, after which there is the files' data.
This is broadly correct. More precisely, there's a table of inodes on each filesystem, and there's a separate filesystem on each partition. (Things can get more complicated but we don't need to get into these complications here.)
A filesystem's inode table maps inode numbers to file metadata. It's typically a large array of fixed-size structures. For example, element number 1234 of this array is the inode number 1234. The inode contains information such as the file's permissions, its modification time, a file type, etc. as well as an indication of where the file's contents are located.
But, on the Internet, I found that each directory has its own table of the inodes and names associated to the files inside it.
That's a table that maps file names to inode numbers. That is, the directory is a list of entries (or some more sophisticated data structure), and each element of the list contains a file name and an inode number. To find the file's metadata and contents, the system reads the inode number from the directory, then reads the designated entry in the inode table. To find a file given its path, the system starts with the root inode, finds that it's a directory, finds the directory entry for the first element, reads its inode, and so on.
Note that this is a typical design for a filesystem, but not the only possible one. Most Unix-oriented filesystems are follow this design, but other designs exist.