Making MySQL databases readable for non-developers - php

This summer, I will be designing an e-commerce website and have chosen MySQL to organize the incredible amounts of data I will be receiving. The people I am designing for are great at making their products...but have absolutely no development or coding experience.
I have three months to make the site, and I don't begin until June. In the end, they would like an easy, readable, and preferably fasionable way to present this data. They also want to be able to manipulate it (sort by date, item, customer, etc.). They don't care if it's an Excel file, a secure webpage, or anything like that.
I know the basics of MySQL, but I am looking for ways to PRESENT the data in a way that is easy and accessible. I love to teach myself and do my own research, so my question is...what topics of interest in MySQL should I read into to learn how to present this data?

Choose any e-commerce CMS like Magento or oscommerce or opencart. All these e-commerce solutions has many in-built reports that would be needed by the business people..
And there are much more options available than normal reporting and these solutions covers most of the business objectives and business models , so whenever the business evolves it will be easier to update the website with little effort..
For a list of e-commerce solutions and comparisons, visit http://en.wikipedia.org/wiki/Comparison_of_shopping_cart_software

If you have a decent grasp of JavaScript and programming web via PHP or Java I would recommend Dojo DataGrid. It is fairly simple to implement if you use the basic grid and looks and performs great.

Dont use MYSQL - Oracle is going to kill it - it is in their plans - use MariaDB - (drop in replacement for MySQL)

look into using php/mysql together with some fancy jquery stuff like dataTables to present your data. A great article/tutorial on just how to do this can be found here ->
You should get away with knowing the basics of mysql to rig something like that up to work...
If there are a lot of numeric parameters and enum type stuff, try using jquery ui to make it look nice with some sliders and fancy checkboxes etc.
I've got a prototype of something I'm working on (slowly...) that utilizes all of the above if you want to see. here it is! It's for a shopping cart but you get the drift
Good Luck!

Assuming you are building the system yourself (and don't have an off-the-shelf option)...
· If they need lots of flexibility in manipulating the data, I'd run a cron job that exports reports as CSV files for them to open in Excel.
· If there are limited views that they are interested in, I'd run the report as a php script that renders an html table, and make it sortable using a jQuery widget.

Related

How do I migrate a PHP based website to Joomla?

I have a PHP based website, with database connections, form processing, etc, that I need to use a CMS on. I'm trying to use Joomla but after using it for 2 days and reading tutorials on it I'm getting the impression that it's designed to handle static content and that all form processing is to be handled by 3rd party extensions.
Am I getting the wrong impression? Is there a standard way to import a PHP website into a Joomla CMS?
I inherited a Joomla 1.5 site a few months ago, so I was in a similar situation to you - where to begin, with lots of questions about Joomla, its ethos, etc. What I've learnt in the meantime is:
Joomla is very heavily dependent on 3rd-party extensions. Some of these are good, some not so good - evaluation and caution is advised.
Joomla encourages the use of extensions, even for relatively static content. Whether these are full blown 'components', or 'modules', depends on quite how powerful/flexible they need to be.
The MVC architecture that underlies everything has its positives and negatives. On the plus side, if everything is done consistently, there is a good separation of concerns and - in particular - the template system offers good configurability. On the downside, very simple components/modules have an awful lot of complexity - e.g. just in terms of number of files.
Joomla is open-source ... sort of. If your familar with the open-source community, you might be a bit disappointed with Joomla, especially when it comes to 3rd-party extensions. Many of them do not embrace the open source ethos, and try to sell code and/or support so, to reiterate, choose your extensions carefully.
Writing your own extension is fairly simple, especially if you're familiar with PHP. Although the documentation isn't great, there are some gems - in particular, take a look at:
http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1
http://docs.joomla.org/Accessing_the_database_using_JDatabase
When it comes to forms, I'm still undecided. The site I've inherited uses a third-party extension to manage them (mod_breezingforms), but it has its issues. If you have the luxury of trying out several alternatives, take it.
Run your development site in debug mode. Take a look at database queries. In my own experience, Joomla is very, very demanding on the database. For example, I have some pages that make hundreds of calls to the database with every request. Watch out for this.
At some point, you'll see itemid in the URL and wonder what on earth it is. It refers to a menu item. Menus in Joomla are a bit more general than you might think - they don't necessarily represent a 'menu' and they're quite important. For example, the built-in way to include content on a series of pages is for them to belong to the same menu item, so you might need to create 'fake' menus to house content.
Try MODx Revolution. You can insert your existing php form processors straight into Snippets with next to no modification required, or using the existing FormIt extra. Ajax is easy as pie.
Some docs to get your started:
Overview
Making Sites with MODx
Snippets
edit: apologies if it looks like I've tried to hijack this thread, somehow missed the fact the question is referring specifically to Joomla. MODx is definitely worth a look though ;)
There aren't many CMS's that can handle forms correctly (maybe only the very very generic ones, such as contact me forms, or shopping carts), but for any other purpose, you probably want to use your own PHP script to handle and process the form.
Nothing is stopping you from having a CMS on one part of the page, and your own PHP script on another.
I've once had a website with 2 different CMS's (Wordpress and Joomla), as well as some custom made pages. Slightly trickier to handle, but it's possible.
This question is very broad to answer. There are few step-by-step tutorial available on the internet for this.
From Joomla
Site Ground tutorial
If you follow this head start. You are sure to know a lot of joomla along way and convert your website to the joomla.
BUT, it is easier to build on Joomla rather than convert to it
The first trick to using Joomla effectively is to not over think things and use code that is proven so you don't have to work so hard.
Your existing content can likely be imported to Joomla just be exporting it to a CSV then importing back in to the Joomla article table.
Form handling is incredibly easy. There are dozens of form handling extensions, some of which do more than you will likely ever need. I use ChronoForms most of the time because it can be made to do basically anything once you learn how it works. I also like RSForms if you need non-tech people to be able to create forms on their own.
"Load dynamic data" in to a Joomla article is not very specific, but I'll take a stab at it. If you mean getting user submissions, then there are front end content submission options built in. If you mean loading data from another source, then you can generally use either a module or a plugin to get that data loaded either on the page or actually within the article itself.
Spend a little time getting to know how it works. Learn the difference between a component, plugin, and module and that will help you get a better grasp of what you can do. Joomla is an extensible framework, there's nothing you can't make it do and many things that are already built for you.
I would use JUMI, a Joomla component for embending your own PHP scripts. No scripts modifications are required!

Designing auto-generated html form from MySql database using PHP

I'm building a simple internal website for a medium-sized independent restaurant chain. The website will be a repository for contact information, general documents, etc. We have a central kitchen that produces and delivers around 50 different items daily to the 7 different restaurants in our city. We currently have a pen, paper, and phone tag system for placing these orders. The part of the site I am struggling with is creating a section for ordering these items through the internal site.
The website can be logged into currently from each restaurant's unique user id, and there is a mysql table for each restaurant's daily order. I need to create an html form that allows the manager of each restaurant to enter integers for each item and have that information update as a new record in the mysql table. I know it should be a straightforward task, and one that an advanced php programmers would scoff at...but that I am not!
Any help at all would be appreciated, even a reference to an open-source solution that is well documented that would help me in getting started!
These classes can also help you :
Form auto generator ( A Simple class for creating HTML forms )
Forms generation and validation ( A professional class using for Form generation and validation )
You may want to consider using a Framework as #hakre suggested in this comment. From a business perspective using a Framework is a time and money saver because you're not having to create the wheel when something in the Framework already exists:
symfony
Zend
and a dozen others would accomplish what you want but would take some time learning them right out of the box.
These, and many other frameworks, have form generators (command-line utilities or open sourced available Code Gallery classes), that make the forms from your database schema.
But this would only be the LONG term solution as this would eventually allow you to customize your site to exactly want you want but would require resources from an experienced developer to maintain.
I think you may also want to look at phpmaker, they have a trial. But essentially you point it at the database > enter the connection information. and it will generate add/remove/edit/delete
I just used it to build a couple sites to administer my databases on the backend. Since I didn't need it to be all pretty and colorful for the end-user experience, it was very useful, and customizable for straight data management.
PhpMaker is really powerfull choice. I have used it for many applications.
If you are a PHP programmer, you can go deep and do most every customization you want.
You can also install some advance extensions like ilovephpmaker.

Lightweight codeigniter/php cms that easily plugs into site code

I have another codeigniter CMS suggestion question. Pretty much I am just looking for a CMS that allows my client to easily add in content that doesn't necessarily need to be tied into a page. I pretty much want a MYSQL database with a gui that allows the client to upload content to certain tables in the db. I don't want any themes attached to the cms as the site code will all be custom built and I would prefer to write all the db calls to pull data for specific pages. I just need a way for the client to easily upload data to a table where I can create a model to pull the data.
I have heard of FuelCMS, Ionize, and PyroCMS but all these seem like they have too much. I am looking for a pretty barebones db that has a gui and good documentation for the api's. That's all.
Thanks!
I know you wouldn't think of ExpressionEngine as "lightweight" but from the perspective that you are speaking, it is...
It allows complete control of content separate from any design's or concepts of "pages". It's power is that you define "objects" or channels that contain specific information that you then take and construct the pages around. Channels are a more user friendly concept of the MYSQL tables you're talking about.
DownsideYou get good support because it's not free, but and worth the money.
It's module development pattern is familiar if you are a codeigniter developer also.

Lost About where to start to become a web designer

i have long wanted to be a web designer, self taught. My aim for this year is to design a wordpress theme from scratch. i dunno where to start from.
learn photoshop, html, js, php, mysql in which order? where to get the learning resources etc.
what do i need to learn?
any advice will be hugely appreciated...
Are you aiming for designer or developer or both? A designer doesn't neccesairily need to be able to make a fancy AJAX page that does all sorts of mysql things. Mysql isn't needed at all for a designer.
Now if you wan't not only to design the template, but give a complete sollution to you customers your need to do a lot more.
The order I would do it would be:
photoshop / drawing / 'designing' ->
make the actual thing you want to
sell (the image, the 'vision' etc)
Some usability etc: Show your clients why your design is better,
why it's a good page and why your site 'works'
HTML: you can make a mock-up for your site so they can actually click
trough it. You can also sell this as a base for their programmers.
javascript, AJAX etc: You can make your mock-up better like this!
Now you want to sell complete templates (not just the design), you'll have to start learning the ins-and-outs of wordpress templates. that's kinda like a language an sich.
Get some basic PHP skills if you want, cause it can get you out of trouble, but it's not a big amount.
Mysql is only needed if you want to start adding functionality etc, but now you're really talking about a second job :)
In building websites there are different disciplines. In a nutshell:
Designer. Draws the website, how it should look. Defines the style of the website. Uses mainly PhotoShop.
Interaction Designer. Defines where each feature goes and how it should work.
Client side developer. Writes client side code. HTML/CSS templates, maybe a bit of JavaScript, although there is a big difference between HTML and JavaScript and the skills you need. Maybe you should even consider HTML/CSS and JavaScript to different disciplines.
Server side developer. Writes server side code (PHP/ASP/...). Will probably need some SQL knowledge as well.
Database administrator. Keeps the database running. Actually not part of the web-building disciplines list.
So, you need to think whether you want to be all these persons, or just one or a few of them. I personally so mainly PHP development and a little JavaScript. In work, I hardly do any HTML/CSS, because this is done by another guy. If you got a fellow that wants to build websites too, you maybe could check where each others skills lie. If you're a programmer, you can focus on serverside and JavaScript, where he can build the lot in PhotoShop, think about the interactions, and build HTML/CSS. You will only need a little of eachothers skills for sparring, and you could build great things together because each of you has their speciality.
If you need to do it on your own, and you haven't got any of these skills yet, I would just start somewhere and at least try everything. Keep your learning projects simple, and don't start mixing 5 of the names disciplines. If you want to start using HTML techniques, don't mind tha fancy looks yet. Draw a few lines in paint and just pretend you got all these gradients and spiffy looks. With a bit of make belief, if you try one of these skills you don't need any of the other ones.

Is there a simple way to "roll your own forms" for mysql in php, for example in jquery?

I've been googling around for a really simple way of making what is, in effect, nothing more than an enhanced phpMyAdmin.
In a mysql database, I have:
Name, address, phone, website etc, plus 2 or 3 custom fields. This data is pulled out to make a website.
All I want is to be able to make a freeform form, a bit like Access, but for the web, and the only thing I want to do over and above normal field editing would be to have a list of when I contact them, what was said, and perhaps a reminder when the next action is due. It also needs to implement some basic permissions so that different users can access different subsets of the data.
I've looked at so many CRMs my mind is boggling, and they all do WAY more than I need. I don't have leads or accounts, all I have is the need to make sure than when I update the person's details, and for that data to be in the same DB as my site is generate from.
I'm happy to learn if I can get pointed in the right direction, and I have a feeling that something like what I want might lie in the direction of jquery. It's just that there's so much good jquery stuff about, I can't see the wood for the trees!
Thanks.
If phpMyAdmin doesn't quite do it for you, it sounds like you just want a simple little web application.
jQuery is probably barking up the wrong tree. It's just a javascript library. While you could certainly use it to spiff up your little application, it's not going to get you the core functionality you need.
I would just dig in and write a little PHP script that does exactly what you want. Even if you're not very experienced, this would be a great learning project.
There are lots of tools which will generate forms including Phpeanuts, phpFormGen, Delphi for PHP, PfP Studio, FormFields, phpMyEdit (and many more).
I've not looked at Radria for some time - previously, it was more of a CMS/page layout/mashup thing rather than a form generator though.
C.
As has been said, you need to build a web interface.
One simple thing you can use is something like Django's admin panel or Ruby on Rails' script/generate scaffold functionality. If you can run Rails or Django, try those.
If you are tied into PHP, consider using one of the PHP frameworks. I'm no expert on them - some of my PHP-using friends have good stuff to say about Symfony (the alternatives: Cake, CodeIgniter, Zend). A bit of random Googling tells me that Symfony has an admin generator that may be quite like that of Django.
As has been said, jQuery won't do what you need, although you can use it.

Categories