I have a basketball league with over 100 teams, and I'm trying to organize the look and feel of the schedule, standings, and gym locations for the coaches, players, and parents to view on my website.

I'm wondering how I could apply something like the code I posetd below, but with true functionality. If I could link that to an online spreadsheet, that would be ideal. I don't know any php or how to even begin, but I'm willing to learn. Could I use my own personal PC as a server to achieve that? Are there any online servers I can purchase a small sliver of? Could I find someone on DaniWeb to build it for me? Could I do it all with javascript (even if it's cumbersome, I'm okay with that)?

I'm pretty sure this is a PHP thing, but again I have no clue. I was thinking about buying the Mac Mini for $1,000 that acts like a server... but again I'd need to know how to start after that. Do I need to download Apache? If you can tell me what I need to do, what I need to learn, a link I need to visit, a code I need to copy, or who I need to talk to, that would be much appreciated. Thanks guys!

<script type="text/javascript">
function setOptions(chosen, selbox) {

selbox.options.length = 0;
if (chosen == " ") {
  selbox.options[selbox.options.length] = new Option('Please select one of the options above first',' ');
setTimeout(setOptions(' ',document.myform.optthree),5);
}
if (chosen == "1") {
  selbox.options[selbox.options.length] = new Option('Elementary','11');
  selbox.options[selbox.options.length] = new Option('High School','12');
setTimeout(setOptions('11',document.myform.optthree),5);
}
if (chosen == "2") {
  selbox.options[selbox.options.length] = new Option('Elementary','21');
  selbox.options[selbox.options.length] = new Option('High School','22');
setTimeout(setOptions('21',document.myform.optthree),5);
}
if (chosen == "3") {
  selbox.options[selbox.options.length] = new Option('Elementary','31');
  selbox.options[selbox.options.length] = new Option('High School','32');
setTimeout(setOptions('31',document.myform.optthree),5);
}
if (chosen == "11") {
  selbox.options[selbox.options.length] = new Option('Oakland Believers','111');
  selbox.options[selbox.options.length] = new Option('Vegas Stars','112');
}
if (chosen == "12") {
  selbox.options[selbox.options.length] = new Option('ACS Bulldogs','121');
  selbox.options[selbox.options.length] = new Option('Kobe's Dominion','122');
}
if (chosen == "21") {
  selbox.options[selbox.options.length] = new Option('Skydubb','211');
  selbox.options[selbox.options.length] = new Option('Sky Dunk','212');
}
if (chosen == "22") {
  selbox.options[selbox.options.length] = new Option('LA Wolves','221');
  selbox.options[selbox.options.length] = new Option('NY Bucks','222');
}
if (chosen == "31") {
  selbox.options[selbox.options.length] = new Option('Kings of Queens','311');
  selbox.options[selbox.options.length] = new Option('Miama Suns','312');
}
if (chosen == "32") {
  selbox.options[selbox.options.length] = new Option('Flying Dogs','321');
  selbox.options[selbox.options.length] = new Option('Cali Winners','322');
}
}
</script>


<table width=800 border=2 cellspacing=0 cellpadding=5><tr><td valign="top">


<div align="left"><font style="background-color:black; color:white; padding:3px 15px 3px 15px;">Filters</font><br><br>
<form name="myform">
<select name="optone" size="1"
onchange="setOptions(document.myform.optone.options
[document.myform.optone.selectedIndex].value,
document.myform.opttwo);">
<option value=" " selected="selected">- Gender -</option>
<option value="1">Boys</option>
<option value="2">Girls</option>
<option value="3">Third Choice</option>
</select><br> <br>
<select name="opttwo" size="1"
onchange="setOptions(document.myform.opttwo.options
[document.myform.opttwo.selectedIndex].value,
document.myform.optthree);">
<option value=" " selected="selected">- Grade Level -</option>
</select><br> <br>
<select name="optthree" size="1">
<option value=" " selected="selected">- Team Name -</option>
</select>
</div></form>


</td><td valign="top" width=30%>
<div align="left"><font style="background-color:black; color:white; padding:3px 15px 3px 15px;">Standings</font><br><br>Team Name | Wins | Losses | %<br><br>
populated when any level is filtered

</td><td valign="top" width=50%>
<div align="left"><font style="background-color:black; color:white; padding:3px 15px 3px 15px;">Team Schedule</font><br><br>Teame Name<br>mm/dd/yy | time | versus opponent | gym location<br><br>
populated when an individual team is filtered

</td></tr><tr><td colspan=3 valign="top" height=300>
<div align="left"><font style="background-color:black; color:white; padding:3px 15px 3px 15px;">Schedule</font><br><br>mm/dd/yy | time | gym location | Team 1 | Score 1 | Team 2 | Score 2<br><br>
populated at start, and filtered automatically as filters are chosen




</td></tr></table>

Dani AI

Generated

Good direction so far: for ~100 teams the cleanest, most maintainable solution is a small server-backed app (data in a relational DB, a few HTTP endpoints that return JSON, and a single-page front end that pulls those endpoints). That keeps authoritative data in one place (schedules, venues, team metadata) and avoids brittle, hard-to-update client-only logic. ’s suggestion to prototype locally with a dev stack and then move to inexpensive shared hosting is pragmatic; is also right that running a production server at home is possible but brings reliability, security, and backup burdens.

A minimal data model to drive all three views (standings, schedules, gym locations):

teams   (id, name, gender, grade, coach_contact, division_id)
venues  (id, name, address, lat, lng)
games   (id, datetime, home_team_id, away_team_id, home_score, away_score, venue_id, status)
divisions(id, name)

Import spreadsheets as CSV into those tables; keep the spreadsheet as an editable source of truth during onboarding, then migrate to the DB for operational use.

Practical implementation path (concise): (1) Prototype locally (dev stack) and import one season’s CSVs. (2) Build simple REST endpoints: /teams, /games?team=, /standings?division= that return JSON. Compute standings with aggregate queries on games (count wins/losses/ties for each team). (3) Front end: use Ajax/fetch to populate cascade filters (don’t hard-code nested selects), and update three panels (standings, schedule, map). (4) Add venue geocoding once and store lat/lng for fast map displays and driving directions.

Operational notes and cautions: home-hosting requires static IP or dynamic DNS, careful firewall/patching, and reliable backups — not recommended for a public site. Shared hosting with PHP/MySQL or a small VPS gives better uptime and less maintenance. Add input validation, authentication for schedule edits, regular DB backups, and an easy CSV export/ICS calendar option so coaches and parents can subscribe without visiting the site.

Recommended Answers

All 4 Replies

Member Avatar for Member #120589

Well, before you go all stratospheric, all you need is a cheap host that offers php/MySQL - nothing much more. Also a cheap PC for keeping your local copy - yes download a stack like XAMPP.

If you get a few DB tables set up properly, the code pretty much takes care of itself with regard to views. Applying Ajax will allow interactive views. JS should then be a minimum, especially if you use something like jQuery.

Could I use my own personal PC as a server to achieve that?

Yes. Possible, but not recommended IMO.

Are there any online servers I can purchase a small sliver of?

Yes, any web host provides that, and there are even free ones to get you started.

Could I find someone on DaniWeb to build it for me?

Maybe. You can try posting in Business Exchange - Jobs and Resumes.

Could I do it all with javascript (even if it's cumbersome, I'm okay with that)?

Yes, also not recommended IMO. Using a database to store your information would be a better choice.

Thank you so much for the answers. I'm going to look into learning all that stuff, and use various links and embedded iframes from a google drive database in the meantime. I appreciate your help a great deal. Cheers. If there's anything anyone else would like to add, I'm all ears.

Member Avatar for Member #120589

Have a look at pitchero.com for ideas.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.