Please bring him to a vet..he may have a spinal injury.
There's no way to tell. I'm assuming it must be his rear leg since you said he's dragging himself around. There may be a fracture in the leg or pelvis. Please keep his activity to a minimum to reduce any further damage and take him in for an x-ray.