Well, your first problem is that no matter what selection criteria you use, you are only going to get 1 count for a row with 2 matches, eg. football in cols2 and col4, or football in col2 and basketball in col3.
Strategies to overcome this vary according to what you are really after, sorry but that still is not quite clear.
Simplest solution is to use a UNION query
$sql = "SELECT 1 AS col, col1 AS sport, COUNT(col1) AS count FROM table WHERE col1='football' OR col1='basketball' GROUP BY col1
UNION
SELECT 2, col2, COUNT(col2) FROM table WHERE col2='football' OR col2='basketball' GROUP BY col2
UNION
SELECT 3, col3, COUNT(col3) FROM table WHERE col3='football' OR col3='basketball' GROUP BY col3"
That will give you individual counts for each column and they will look something like this
col | sport | count
1 | football | 20
1 | basketball | 36
2 | football | 18
2 | basketball | 5
3 | football | 13
3 | basketball | 47
Now, how you add those totals up depends on your version. If it supports sub-queries then wrap the Union query in another select that aggregates the values. In that case you can omit my column identifier called 'col' in the first select.
Otherwise you can use a temp table to store the reuslts and aggregate them from that.