this isn't so complicated using javascript - you can query the yahoo weather service and use the object returned which is much simpler (and more up-to-the-minute) than saving results to a database. If you want to search for residence or zip you are probably better off geocoding that first, getting their latitude and longitude and then making the request. Here's a start, anyway (the 30341 in the query is the zip code for Atlanta - change that to get other locations)...
<!DOCTYPE HTML>
<html>
<head>
<style>
#rain{display:none}
</style>
</head>
<body>
<img id="cond"></img>
<div id="txt"></div>
<div id="rain">It's gonna rain!</div>
<script>
function weather(o){
var obj=o.query.results.channel.item;
document.getElementById("cond").src="http://l.yimg.com/a/i/us/we/52/"+obj.condition.code+".gif";
document.getElementById("txt").innerHTML=obj.title
+"<br>Temperature: "+obj.condition.temp
+"<br>Conditions: "+obj.condition.text
+"<br>Forecast: "+obj.forecast[0].text;
var fc=obj.forecast[0].code;
//var fc=11; //for testing
var rains=[1,2,3,4,5,6,7,8,9,10,11,12,13,37,38,39,40,45,46,47]; //rain forecast codes from http://developer.yahoo.com/weather/
for (var i = 0; i < rains.length; i++) {
if(rains[i]==fc){
document.getElementById("rain").style.display="block";
break;
}
}
}
</script>
<script type="text/javascript" src="http://query.yahooapis.com/v1/public/yql?q=select%20item%20from%20weather.forecast%20where%20location%3D%2230341%22&format=json&callback=weather"></script>
</body>
</html>