Hi Josh,
I hope to shed some light on a few things here.
If your teacher is asking you to build a CMS from scratch he/she is a moron, When I was taught coding in school last year the teacher said, USE PRE MADE SCRIPTS if you can while coding(Alter what you need and go). I wouldn't use something like Joomla or similar but I would grab what I can that made making the app/script so much easier to begin with.
But if you are new to PHP and need a crash course check out tizag.com they have a great tutorial there (and I found it easy to follow)
Even for a basic CMS I would use a framework like CI to do the heavy lifting and write out the rest. (See notation)
For articles/pages do you plan on having them in a file?? or MySQL Database, Either or can be difficult if you never dealt with it before. My suggestion is get a hold of your teacher who assigned this project to you and ask if you can use a framework to build the CMS off of, then code the CMS with the framework. Other wise you will be pulling your hair out to build the CMS completely from scratch, Esp when it comes to the MySQL Database queries or File queries (which every method you use)
For a CMS I like to use CI since it is very easy to pick up and go if your a new to php. They have a well written User guide and it is very easy to build a CMS out of using a MySQL DB.
Also for users do you plan on having them in a db or flat file? DB Is more secure, just md5 the password on registration and on login to the site to keep it secure (keep in mind that MD5 is a one encryption and can not be decrypted easily (ie it may take years to decrypt))
EDIT :: For hows?
for mysql (this is CI since that is what I am working with right now)
PHP Code:
$this->db->delete('table_name_here',array('id_field_of_row_to_be_deleted'=>'id_of_row_to_be_deleted'));
or
PHP Code:
$this->db->where('id',$id);
$this->db->delete('mytable');
Okay let me try and explain on how that works
The first one is one method which is one line of code Both do the same thing
'table_name_here' is the table name containing the item which is to be deleted (article,content,users,comment,etc)
'id_field_of_row_to_be_deleted' is the coloum name in the table (usually it is id it is what most people use)
'id_of_row_to_be_deleted' is the id of the row you wish to remove eg 1
I don't deal with files since they are alot more difficult to implement than a MySQL database for adding/updating/deleting content frequently
HTH Like I said I use CI, and by now you are probably wondering WTF is CI, It is CodeIgniter it is a php framework.
Notation : What I mean by a using a framework is just that it provides you with necessary calls to complete your application like database, file, security, and more.
A suggestion is to keep all your code you write, ESP if you plan on doing PHP coding more and more. If you save it your development time in future projects will go down since you will have code in the bank as they say for reuse. And focus on reusable code if you can. I would use functions to create reusable code blocks for your adding/updating/deleting calls that you will need to handle. For example I would use a function for add, update, delete so then every time you want to add some thing you just pass the needed info in to it, and it will reuse what is there with the new information for example
PHP Code:
function add_to_db($table,$data_to_insert_into_table){
if(!$table || !$data_to_insert_into_table){
exit("No table or data to insert"); // Terminate the script form continuing.
}
// db or file queries to add the info
}
I would do something like that so then I can reuse that every time I needed to insert stuff into a different table