Link to Second Level Admin Page

The add_submenu_page function allows you to link to a callback function and its this callback function which handles the display of that pages content.

add_submenu_page( 
     $parent_slug, //The slug name for the parent menu i.e. ppmtalentexpo
     $page_title, 
     $menu_title, 
     $capability, 
     $menu_slug, 
     $callback_function //your callback i.e. jwg_talentexpo_options2_page
);

So far what you have appears right, assuming all your arguments are correct.

Instead of creating a custom table, you could probably get away with using a Custom Post Type to handle your “bands”.

Then all details like,

band_contact_person
band_email
band_url

…could be post_meta associated with your custom post type “bands”.

This would make querying data so much easier for you with the built in WordPress API functions such as WP_Query and get_post_meta.

Because as it stands right now, you may very well be able to list all of the band names with,

$retHTML .= "<td><span style="font:bold 16px sans-serif;color:#F87114;"><a href="#">" . $rows[$c]->band_name . "</a></span>";

But then question I must ask you is that, where does that $rows[$c]->band_name point to? No where. That’s where.

Unless you are comfortable with building custom tables as well as the data to go along with it, then you’re making life hard for yourself straight out the gate.

Instead you should take advantage of the inbuilt custom post types as well as the automatic URL/permalink handling that goes along with it.

  1. Does this make sense so far?
  2. Are you aware of custom post types?
  3. What is your purpose for this custom table instead of using custom
    post types?

Happy to help, but lets clarify these points first… Just so we’re all on the same page.

Update

Based on your additional comments, I can see where you were coming from now. While Laravel and CI are fine in external applications, introducing them into the WordPress environment (albeit entirely possible) is not recommended, unless you have a special use case where nothing else but that will do.

WordPress bakes in a lot of the functionality you are looking for, in fact, all of it, in an easy to use API that abstracts away much of the heavy lifting and prevents that need to re-invent the wheel.

So to kick you off, become acquainted with…