I would like to learn how to make databases, for large collections (of about 1,000 unique items) as well as how to create websites that implement them.
I would like to know which applications there are to choose from, what thier differing features are, and how to pick one.
At the very least, how many different applications work through each other. An overview of the different components of the entire process would be nice, even though a paid course should do that anyways.
(I hope that's concise enough, and that the following elaborating paragraphs are laid out logically and clearly)
I need a DBMS which usually has it's own built-in derivitive of SQL, right? Are my choices more or less limited to MS Access and Oracle?
For the web component I need a webhost provider that supports whatever I use... all I recall is PHP. Are there others? Is PHP only secure when it doesn't allow public submissions the way a message board does? I always hear people having problems with PHP message boards.
Are there any free webhosts that support ... whatever... for limited personal use? I heard it's even MORE complicated to try and set up your own webhosting locally, as you need YET ANOTHER APPLICATION. (which you must learn)
Optionally I need C++ for data processing. Doing it manually is sooo time-consuming! I haven't used a C++ compiler in a long time. I tried to pick up a new one but they never make a new compiler easy to pick up. I suppose if I can figure out how to get it running and do file IO, that's all I need. God, I hate libraries.
optional detailed info on DBMS components:
Forms and Reports. I never learned that stuff. It all got pretty convoluded by that point. Especially for what I wanted to do, which required website applications. (what was it called... it was a method of sorting and displaying the data... it required something more complicated like C++ or it's web derivitives.)
Do I even need to learn about forms and reports if I'm using a web interface to do the layout?
backstory:
I've been mildly interested in databases since forever, and I've read about them and tried to learn them, but I've always had problems getting beyond the beginning.
I always find the "easy to use" interfaces inadequate. They either make it too simple, so that I can't do what I want, or too complicated, so I have no idea how to do what I want.
Also, while I act normal enough that people think I'm merely eccentric, I think I still have enough differences (I suspect
Asperger's Syndrome) that I do have some real serious problems functioning in the world. My sucess at functioning actually makes my situation worse, since people expect me to function the same way they do, because I act normal ENOUGH. I suspect it's part of the reason I have so much problem trying to learn educational material, is that I don't make the same connections most people do. Everything I read either mostly makes sense quickly, or makes almost no sense at all for a long time. Well, I think it just means it's 10x more difficult for me to learn from text than it is from a person. Texts don't answer questions when things don't make sense.
Posts
I know I've read some PHP/SQL combo tutorials, but I don't remember any of the PHP...
anyways, I don't know where I can get free webhosting, and since right now I have nothing set up to indicate that I could be employed for this, I don't intend to spend money on webhosting. It's not the "you'll never get anything if you don't invest". The thing is, buying webhosting space isn't enough of an investment. I wouldn't have the same problem investing in a course, because I know that's a much wiser investment towards that goal.
Also, I still don't have any more information than I did before. Being "widely used" doesn't tell me that it's the one *I* should use.
what if I find out that for the web use I want it for, PHP isn't appropriate? While the SQL database can remain the same, the whole thing's handled through PHP. How do I convert that? I'm... speaking hypothetically. I don't even know if there's an alternative to PHP.
Sometimes WikiPedia helps the most, other times I'm totally lost. Is this PHP's alternatives? http://en.wikipedia.org/wiki/Server-side_scripting
* http://www.site5.com/ $5 a month
still, I hope someone answers my question.
I think I found another piece of the puzzle. Apache HTTP server is aparantly the most widely used. of course I don't know when you actually handle such a thing, or if you need to know about it to access webhosting providers...
I looked it up because one of my local courses in "web applications development" includes "PHP 5, MySQL, Apache". that started a month ago though.
That'll get you a working Apache installation with PHP and MySQL with the minimum of effort. You'll only need to tweak it if you want to do something fairly advanced, but you can cross that bridge when you come to it.
If you need a PHP reference, the manual available from the site is surprisingly good, and there's an appendix that covers PHP/MySQL interaction.
If this is solely for learning purposes, you might check out the express editions of Visual Studio from Microsoft. Pick up Visual Web Developer Express, SQL Server Express, and either Visual Basic or C#. There's lots of tutorials [video even] available, and if you run the program from within Visual Web Developer it starts a local web server for testing purposes.
A downside is web hosting services that offer ASP.NET are rarer than PHP/mySQL (as they have to run IIS), but it sounds like you may not need that at this point.
For cheap online hosting, AFAIK your choices are generally limited to MySQL or (less commonly) PostgreSQL. I like Postgres better than MySQL, but most people seem to like MySQL for some reason.
I've heard of cheap web hosts that offer ASP.NET support, but not MS SQL Server. Maybe I haven't looked hard enough.
C++ is total overkill for what you want to do. If you need to do something that can't be accomplished in PHP, C# or VB.NET should be more than sufficient and you won't have to worry about things like manual memory allocation.
If I were going to make one specific recommendation for what you want to learn, it's to get your head wrapped around parameterized queries (PHP lets you do this using the mysqli library **NOT** the regular mysql library). They have built-in security, and they'll get you thinking about SQL data types if you use them in PHP (the data type part is optional in .NET/MS SQL)
http://www.thelostworlds.net/
For the record, I was suggesting Ubuntu Server because it's the easiest way I know of (for someone unfamiliar with the software) to get Apache, PHP and MySQL set up and configured. I know I had a hell of a time with Apache and PHP on a windows XP box, and the OP did state he had trouble staying motivated.
Apache, PHP, MySQL (AMP?) does exist in one packadge, to which I highly suggest you use if you go the windows route. You'll practically have an out of the box website, save a few simple configurations you may need to do to which you'll find instructions with the install.
www.awardspace.com is a free webhosting service with MySQL, PHP, etc support with plenty of space.
C++ is overkill for data processing, PHP will work just fine. In fact, I bet there's some free classes for PHP that delve into fancy web displays for your data. If you need a standalone app (non-web) then C++ might be good, much more difficult to pick up than PHP.
You might want to read up on relational databases if you think you'll have a pretty large DB to manage.
Start simple. Create a website with basic functionality to read data from the DB based on certain parameters. Build from there.
Back in 2002 I had no idea how to program (I didn't know of any languages) and I had never touched programming, networking, webservers or anything of the sort. Heck I barely knew what a browser was but I was armed with a wicked motivation to learn how to make websites. I learned how to make my own message board system with an adhoc search engine using php/MySQL inside the period of a few weeks.
I used a program called EasyPHP which I think is very good to *learn* how to use php+MySQL+phpMyAdmin when you've never touched it before. It basically emulates an Apache server and by following the attached instructions you should be on your way pretty quickly.
From what you've posted I have the feeling you don't really know what you're doing but you've read a lot of stuff and you know some of the terms so that's cool. Just follow tutorials and I mean *follow* them by doing them on your own and then modifying them to experiment.
well, I've taken C++ classes. of course if it's easier to pick up PHP than it is to pick up a new compiler, it's worth a try.
... what do you mean by "free classes"? PS: I'm Canadian.
Well, I do want it to be easier to set up the further away I get from the database. By the time I get to web hosting, I'm starting to feel I've lost my way. Although it's only a step away from PHP, so I think I can swallow that pill.
What version of EasyPHP should I get? The website is in French and clicking on English doesn't actually do anything. Do I get the beta or the previous version?
I think I tried XAMPP before. I don't think I got anywhere with it even if I did manage to get it running. Hah. Yeah, I even still have it installed. -_-;
so the answer to my question is that... I should learn PHP. (not much elaboration, although I'm getting the impression that it's used most of the time) and basic MySQL over Oracle or MS Access.
I know that AMP packages people are touting for ease of use, but I'm going to have to take a course anyways, so it's ease of learning on your own doesn't apply to me. (especially since no matter how easy it is, it's always difficult for me to learn on my own)
A single database can be made up of many tables. The relationship between the tables makes up a relational database.
No offence, but by the way you've been talking about databases in this thread you would probably benefit from taking a course at your local community college. There are tons of courses on PHP+MySQL, or just MySQL in general. MySQL 5 is a great database to learn on even though it doesn't support all of the SQL standard's features. But since you are just learning you likely won't run into that.
You don't have to learn using PHP, but PHP is easy enough to pick up that you'll be spending most of your time learning the database programming rather than fighting with the language syntax. Another option would be to look into Java as it has a fairly mature database connectivity layer and more readily supports standalone applications.
Whatever you do, do not use MS Access to learn. It is not a real database and if you learn on it you will be in for a very harsh and painful realisation when you start using other database systems.
1 MySQL database means you have just that, one database. But you can have many tables within the database, which is where relational databases come into play. Relational Databases is a set of rules, basically, that are a standard for constructing large business database systems. For your purposes, you will only need one DB so I think you're ok
Oh by free classes, I meant free php files. You store stuff in a PHP class that can then be invoked from your other files. So lets say you put all your DB connection stuff in a class, you then instantiate that class and now have access to it's functions. You've taken C++, did you design structs or classes? Very similar to that, if not the same.
Basically, free php files that people have made that you can use in your files with ease.
Hope that helps a bit. Good luck on the project. It's actually really fun once you get going.
You've got a ton of choices here. On Windows you've got Access, SQL Server (they have a free version if you want to play with it at home), MySQL, etc. On Linux/BSD/etc. you've got MySQL, PostgreSQL, SQLite, and so on. Tons of options, all free.
Most modern languages have DB interoperability libs with them these days. On the Windows side of things you would most likely be working with ASP.Net in your language of choice... mostly seen in VB.Net and C#, but has support for much more. PHP is currently the most popular hobbyist choice on the *nix side as it's simple to pick up, free, etc. I personally am a Perl fan and that is what I use for my projects on Linux (and do for my job).
As for secure/insecure PHP. It's a combination of how the web host has their PHP configured (one of my least favorite things about PHP... a programming language should always work the same rather than varying from system to system based on both a .ini file AND compile time options for the interpreter) and the code. You can write clean, efficient, and secure PHP. Like all languages there are both good and shitty developers using it. PHP is one of the more recent flavors of the month for hobbyist developers, so there are a lot of apps out there written in it by terrible developers resulting in a lot of insecure PHP code floating around. It can be done right, though.
Most web hosts these days give you at least 1 database and functionality for php and perl on *nix hosts or ASP.Net on windows hosts.
As has been said, C++ is overkill here. It's rare you're going to find web apps written in compiled C++. Most are done in interpreted higher level scripting languages or frameworks specifically designed for this stuff such as is provided by ASP and Java.