I'm a bit new to web development and wanted some insight on how to approach a project of mine.
We have a large mysql with a fairly large dataset that we want people to be able to play around with. Is there a way to have some sort of web based spreadsheet that, in addition to do normal spreadsheet calculations, query a database and pull down content? We have niche statical information on companies we research, ideally a user would come to the site and be able to access our data while adding their own logic(math operators) to make it more relevant to them.
We don't want to create an api to connect to their desktops(yet) and want to do this entirely over the web.
Any help on the approach or tools you'd use would be greatly appreciated.
Thanks in advance
Edit: I found a good tool for drupal "Sheetnode" which uses phpexcel....I'll study it, I'm not totally sure if it allows mysql queries to be added within cells.
Give YUI datatable a try. The YUI library is one of the best-documented libraries. Yes, you can do queries for every cell in the sheet. You can use one query to populate the whole spreadsheet, and then another query for updating each individual cell. You will be responsible for programming the server-side code in Drupal using your own custom module. The menu_hook in Drupal will allow you to accept RESTful calls from the datatable and JavaScript.
I found phpexcel ( phpexcel.codeplex.com/ ) does what I want and there's a module for drupal for me.
If you're familiar with Java, the most relevant choice would probably be https://vaadin.com/spreadsheet and using the open source framework Vaadin (Disclaimer: I'm working for the company behind the tool).
But anyhow, with this it's as easy as:
Spreadsheet s = new Spreadsheet(
new File("/path/to/some/xls/file/on/server.xlsx"));
layout.addComponent(s);
to add a excel file in your web browser.
Related
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.
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.
I am using a commercial PHP web application that stores information in a mysql database, and find myself needing to create some custom reports on that database information, ideally presented via the web with the ability of exporting the reports to PDF or some external format as well.
I could just slap together some PHP to query the DB and then show the results of SQL queries against that DB, but was hoping there may be a more intelligent framework I could employ to generate these reports faster and easier now as well as in the future. Codeigniter looks like it may be a good starting point, but I'm not in love with it. What do people use when they need to work with an existing SQL db info but dont want to roll it all from scratch?
edit - I know php/python/ruby enough to operate, but I'm rusty so starting from scratch will make the process longer than it probably needs to be. I'm looking to leverage quality frameworks if they exist to give me the best results in the longrun
I would recommend Django, it has a management command that can help automatically generate models from an existing database, inspectdb. You could leverage that to quickly get going and start using Django's powerful ORM to build your reports.
I have a MySQL database that has a few very simple tables.
I would like to find an app (implemented in Perl, Python or PHP) that will do the following:
Point the app to a database table, and it automatically retrieves the table's schema from the database.
It then generates an HTML view of the table's data. The data is displayed as a grid, with all fields being user-editable. If there are a lot of rows, then it automatically provides pagination.
Bonus points for allowing the user to click a column heading, which would then sort the data by that column.
Bonus points for allowing the data to be filtered by a "where" clause.
I have already looked at a few packages (phpMyAdmin, webmysql), but they do not seem to provide the editable table view. They seem more oriented towards database administrators. What I need is something that's more oriented towards someone who wants to view, enter and modify data.
Use phpGrid. This is all you need.
$dg = new C_DataGrid(“SELECT * FROM orders”, “orderNumber”, “orders”);
$dg -> display();
Outcome:
See if Java NakedObejcts is what you want. http://www.nakedobjects.org
If you can use groovy then Grails can get you jump started. It will build an ORM of your entire DB, build views and your basic CRUD is all built in.
If you have a real aversion to anything thats Java-based then perl's Catalyst can help build all your mappings but might not get you the whole 9 yards. You will need to write some of your basic CRUD, which is easy and can be accomplished by simple following the Catalyst tutorial.
Thanks for the responses, but none of those exactly fit the bill, so I decided to implement it myself.
The result is a new open source project called DWI, which stands for Database Web Interface. It took me about 3 days to get it working, and I did it in about 600 lines of PHP and javascript.
If you want to check it out, it's located at http://code.google.com/p/dwi.
Use CakeApp.com, it does exactly what you want!
CakeApp.com is a rapid development online tool. It's easy to use, no
other software than your browser is needed. Benefit from ER-Diagrams
of others and share your visions too.
I would like to know how is it possible, or what knowledge do I need to acquire to create a small Adobe AIR application, probably like a employee directory search that will search and show a list of employee names, from a application based on php/mysql?
Thanks.
First thing you need to do is the communication with php/mysql application based on JSON or XML (whoever suites you). You have to have a page like website.com/employee_list.php which returns you the XML or JSON that you call from ActionScript.
Then you need a fair knowledge of ActionScript (which isn't a very hard language if you programmed before in C or C-based languages), but don't be scared, the help covers it all.
After that you will require an IDE of choice between Flash or Flex (the second is easier to the beginners due to its large object and display library which helps you create rather fast a good looking application.
The search for employees gives you 2 options to realize it:
search made via php/mysql and you
just output the results
search
made via ActionScript searching on
the array of results obtained in 1st
step by requesting to the php/mysql
app the complete list of emplyees
The final step is just to write the code and export the project as an AIR application.
Hope that helps! :)
As an addition to Bogdan's answer, you can also program in Javascript in Adobe Air. Everything (well almost) you can do using the Flex components has a Javascript wrapper, so it is possible to write an Adobe Air app without using any Flex at all, and only using HTML/Javascript.