I mean, PHP is technically a server-side language right?
Yes, right. (Although it can be used locally, it can even be compiled to generate a desktop app binary, et cetera.)
So does the fact that PHP can generate "View" elements change its role in the programming pattern?
No. The core "View" concept is its separation from other parts of the application. Ideally, you would not have any business logic, database queries, etc., in the "View" layer. For example: first, you do all the calculations and operations. As a last step, you transform your result into a "View" for output (as HTML, or XML, or JSON...) You don't have "echo" statements mixed up with the SQL queries.
Do I have it right that this is the controller?
In your description, we have two distinct things: one can be called "router" - it is where you determine which function / method to call based on the HTTP request.
The "controller", in this case, would be that functions, which on their turn call the database read/write functions and the view-build functions. The controller interact with the model, and deliver the output. It is the model that should interact with the database.
I am assuming that the model is the set of functions and classes I call periodically?
The model is commonly the group of functions which read and write into the database. This is the main real world usage. But this is not the definition of "model" - it is only it's most common form.
For example: if you have a virtual store, which sells products. You would then have a "Product" model, i.e., a class to handle the insertion of a new product into the database, the update of a product information, the calculation of its price, everything else you may want to do in a "product". These methods must work in any controller, any route, any view - this is one goal for the pattern separation/organization of responsibilities. You should be able to create a whole new front-end website using the same store model.
whether or not a programming pattern can apply to more than one programming language even though one is client-side and another is server-side.
Yes. We use lots of different languages in a single application: HTML, JavaScript, PHP, SQL, et cetera. The whole application can follow a set of patterns. Each language can be used to perform one or more roles in the pattern.
Am I even following a programming pattern? If I am not or am somewhat close to one, does it matter if I am not following a pattern exactly?
Yes, you are. I think that, even if you don't have a name for it, and even if you are following "your own pattern", you are certainly following some pattern, otherwise you would not be able to build your application. This pattern can be MVC, ABC, XYZ, CSM or whatever. Of course, if you learn the concepts, you are able to talk about your application code with other developers using these concepts. It surely is a good thing to learn, but...
No, it "doesn't matter" if you are not following a pattern exactly. You may end up creating a new, enhanced, better pattern! Sometimes being concerned in fit into some pattern may disrupt your creativity. Don't worry about it more than you should.
All this being said, I think you are doing right, wanting to know, to understand and even to master these patterns and their concepts. MVC is an important thing for a programmer to understand. A good teacher can help. Reading nice books and articles. Questions and answres here at SO. Some Google research... And, above all, coding experience. If you have a practical goal to reach, an app to code, and apply what you learn in practice, you will gradually understand them.