You may need several pieces of info depending on what you wish to do.
For example, the bare minimum would be a list of schools and their addresses (or at least their zips). Without this, you're stuck. You'll have to get creative and look around on the net. You might think about building a web crawler or you might check out what the government has in its records. At a federal level, one might think you could get all of the schools. At a state level, you might be able to get all of the schools in that state. It'll require some detective work.
So you have a list of schools. I plug in 44137 which is my home zip. Will it only show schools in 44137? Or will it show schools in and near to 44137? If you just show schools in 44137, then that's easy. You just query your school table to find all schools with a zip of 44137. You might get creative and drop the last digit of the zip to make it 4413. And then do a wild card match on all zips that start with "4413." Drop more digits and widen your area. If this approach sounds exciting to you, I'd highly recommend checking out what the zip code geographic looks like before attempting this to make sure its going to do what you want it to do.
The next approach is one I love. But its a lot more complex. You'll need your list of schools. And then a second list of zip codes with latitude and longitude data. Now you can have the user enter their zip code and from that you can figure out their latitude and longitude. Then you can search your school zip and determine the distance between the user's lat/long and the schools' lat/long. Then you can return those schools that meet a distance requirement of lets say 5 or 10 miles. The zip data can be bought from the USPS or you can do some digging in the census data for it.
Hope that sparks some ideas...