mysql_query() returns a result set, which is basically a list of matching records. The result set could contain any number of records—fifty, fourteen thousand, one, or even none. You can't operate directly on a result set—only on the individual records contained therein.
To look at individual records, you need to pull them from the result set—even if your query only returns one record. That's what mysql_result() and mysql_fetch_*() do—you feed them the result set, and they spit out the first record from that result set. (If your result contains multiple rows, repeated calls to these functions will return the second, third, and fourth result set, and so on.)