UI for Multi-Table query complete (almost!!)

As mentioned in my previous post, I am working on making new UI for multi-table query for phpMyAdmin. I believe I can safely say it is in good shape as of now, although code review is still pending. I have added most of the features from earlier interfaces. Some of the examples of queries which you can construct are:

  • Basic queries.
    • select `wp_posts`.`*` from `wp_posts`;

    • select `wp_posts`.`ID` from `wp_posts`;

  • Aliases.
    • select `a`.`ID` from `wp_posts` as `a`;

    • select `a`.`ID` as `id_col` from `wp_posts` as `a`;

  • WHERE clause
    • select `wp_posts`.`ID`, `wp_posts`.`post_title` from `wp_posts` WHERE `wp_posts`.`ID` > 49 AND `wp_posts`.`ID` < 74;

  • ORDER BY clause
    • select `wp_posts`.`ID`, `wp_posts`.`post_title` from `wp_posts` WHERE `wp_posts`.`ID` > 49 AND `wp_posts`.`ID` < 7 ORDER BY `wp_posts`.`post_date`;

Following is a screenshot of the UI:


I had a plan to add filtering and pagination of queries, but luckily they are built-in for query response HTML. You can checkout code from the PR and try it yourself. As always, any feedback and suggestions are more than welcome.

According to my timeline, I am supposed to complete this with code-review by 15th June. But I understand that other developers may be busy right now. So, I will be moving on to my next task this week i.e. Default options for transformations.

I will update the code for Multi-Table querying once I get code reviews.


2 thoughts on “UI for Multi-Table query complete (almost!!)

  1. Indeed, you’ve anticipated well that the review may take longer than the 15th, and moving on is great.

    This, in particular, is such a large piece of code and change to the UI that I’m going to get some more feedback as part of the review, so you shouldn’t take such delay as any poor reflection on your work. You’ve submitted it for review by the deadline set in the timeline, which is all that really matters 🙂

    Anyway, how did you find this portion of the coding? Was the query UI improvement a difficult project or easier than you expected? It seems like quite a large project, so I imagine there were some parts that came easier and some that took longer than expected. Was there any particular point that you think users will find much easier now than they did with the old UI?

    Nice work.

    Liked by 1 person

    1. In some parts, it was easier than expected while in some parts it took longer than expected. For example, I thought implementing pagination, filtering of results etc (tasks after the results are fetched) are going to be hard. But since all these are already provided by `PMA_executeQueryAndSendQueryResponse()` function, that part was easy. The whole thing took longer, but nothing was very hard. I felt that this is just a large collection of small and easy pieces.

      Coming to the benefits to users:

      • Adding and removing of new columns to query is much cleaner and intuitive now.
      • Adding WHERE clause conditions is neatly orgainized into criteria.
      • Most of criteria can be just selected by mouse, while preserving option of entering it as free text. Earlier it was only free text.
      • As mentioned, the form itself occupies less than half of the page, so the results can be shown below the form and users can immediately update query and fetch new results. Earlier the form covered whole page and user was taken to new page.
      • It supports both column and table aliases.
      • I tried to make the entire thing look as organized and easy to use as possible. Earlier UI looked very unusable (in my opinion). But I am sure it can be improved with more perspective. Suggestions are welcome. 🙂


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s