Provavelmente esta dando erro no SELECT ou na conexão com o banco, portando o resource veio com NULL Chame a sua função assim: mysql_query ('Seu select') or die mysql_error(); E nos passe a mensagem de erro ... provável que o problema esteja por ai. Se sua query não for de SELECT por exemplo UPDATE, DELETE ou INSERT esse erro vei acontecer sempre pois o mysql_query não vai retornar o resource nesse casos. Manual PHP - mysql_free_result() Perceba também que esse é apenas um Warning, e pode estar aparecendo apenas porque você deixou de validar.