-help- rfid with sonar sensor and display door lock

I am a complete beginner

Are you sure? No missing parts?

Right now I'm just trying to get an output on the display but it doesn't seem to be working too well.

How could it possibly work "too well"?

long duration;
int distance;

Why are these global? You should have a function that returns the distance, which you store in a local variable. The distance is a function of the time, which should be local to the distance measuring function.

char* myTags[100] = {};

Do you REALLY have 100 tags? Do you REALLY have enough memory to store all 100 tag IDs as strings?

String tagID = "";

Do you REALLY need crutches?

  int distance = digitalRead(8);

That is NOT how to get the distance from a PING sensor. You need to TIME how long it takes for the echo pin (which you named, but seem to have forgotten) to go HIGH after the trigger pin toggling sent the pulse.

Why are you creating a local variable with the same name as a global variable (which should NOT exist)?

  // If door is closed...
  if (distance > 100) {

What sensor are you using, exactly? The value returned by digitalRead() will be 0 or 1. Neither value is remotely close to being over 100.