Question: Many pages, for example [this one](https://support.steampowered.com/kb_cat.php?id=3), use PHP ID's in the URL (correct me if I'm wrong!) to store and differentiate pages/information. The page I linked has its own ID that refers to the information in the support database that is required. How does someone go about creating that kind of setup? Where is the data for each question stored, in a database?

If I want to create a system where a page has info brought to it depending on a "user ID" such as `php?userid=1`, what is this process called? 

I am not looking for a detailed answer telling me how to do the above process, but more I would like to clear up what I need to learn to achieve it. If I need to explain better please let me know and I'll edit my question so that it can benefit others, not just myself.

Answer: 
* Yes, the data (here: questions) is stored in a database. It doesn't have to be, but it typically is.
* Each piece of data has a unique primary id, typically a number. Databases have standard mechanisms to assign such ids, e.g. [auto incrementing primary keys in MySQL](http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html).
* In `profile.php?user=1`, the id `1` is the primary id of that user record in the database.
* The PHP file fetches the database record based on the ID in the URL.
* With URL rewriting you can change the appearance of the URL from `foo.php?id=42` to `/42/something` (or any other form you want).
* You'll have to learn PHP (or any other server side language), a database (MySQL, Postgres, MongoDB, whatever) and [URL rewriting](https://stackoverflow.com/q/20563772/476) (or otherwise configuring your web server of choice to handle URLs the way you want to) to achieve this result.
You can read these URL variables with the PHP $\_GET Super Global.
i.e. reading out: ?userid=1 is achieved using:

```
echo $_GET['userid']; // outputs: 1

```

[More information here](http://www.php.net/manual/en/reserved.variables.get.php)