• 0

[PHP] Some sort of scoreboard.


Question

Hi there!

In two weeks we have some big fun activity day at school, in groups, and people are supposed to get points for it. Now, I'm charged with making a scoreboard and I thought it must be easy to just run a quick XAMPP server on a laptop, and on the external screen having a webpage in fullscreen with autorefresh, while I am on the laptop itself to enter scores.

I was thinking something about a page for all groups (about 40) with, next to each group, 25 input boxes. For the scoreboard it should just add up all of the 25 boxes for each group (to get a total score) and then display them in the right order. (highest points first).

Now, I know HTML, so formatting is no issue, and I know some PHP, but I don't know anything of integrating MySQL in PHP...

Anyone can give me a jumpstart?

Ty

Ambroos

Link to comment
https://www.neowin.net/forum/topic/749726-php-some-sort-of-scoreboard/
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Hi,

This tutorial is just about the best on the internet...

http://www.tizag.com/mysqlTutorial/

Basically, you do the following:

1) Create a database and a table to store the scores (use phpmyadmin provided in xampp)

2) Connect to the database with a username and password

mysql_connect("localhost", "USERNAME", "PASSWORD") or die(mysql_error());
mysql_select_db("DBNAME") or die(mysql_error());

2) Insert the scores into the database

mysql_query("INSERT INTO TABLENAME (column1, column2etc) VALUES ('.$_POST['textbox1'].', '.$_POST['textbox2'].' ) ") or die(mysql_error());

3) Query, and output the scores from the database and format using HTML to display it on a page

$query = "SELECT * FROM TABLENAME ORDER BY COLUMN ASC"; 	 
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
	echo $row['column1']. " - ". $row['column2'];
	echo "<br />";
}

4) You can order the scores by using ORDER BY as per above, and just tell it which column you want to order by...

5) You'll need to add your scores together which you can do using either the SQL Count function, or by putting the scores into an array and counting them using PHP.

As long as you set the table, database and column names correctly, that would give the following functioning script. You just need an input page with a form setup for the scores to be typed into.

<?php

mysql_connect("localhost", "USERNAME", "PASSWORD") or die(mysql_error());
mysql_select_db("DBNAME") or die(mysql_error());

mysql_query("INSERT INTO TABLENAME (column1, column2etc) VALUES ('.$_POST['textbox1'].', '.$_POST['textbox2'].' ) ") or die(mysql_error());

$query = "SELECT * FROM TABLENAME ORDER BY COLUMN ASC"; 	 
$result = mysql_query($query) or die(mysql_error());

// the while loop will run until there are no more results to display

while($row = mysql_fetch_array($result)){
	echo $row['column1']. " - ". $row['column2'];
	echo "<br />";
}

?>

Get familiar with connecting and outputting, and then you can post your code and I'm sure someone will help you with the counting functions...

  • 0

Hey,

mysql_query("INSERT INTO TABLENAME (column1, column2etc) VALUES ('.$_POST['textbox1'].', '.$_POST['textbox2'].' ) ") or die(mysql_error());

Just make sure you validate your input! As anyone could put in some dodgy values into the textboxes and it would be ran as a SQL query.

Look here: http://www.tizag.com/mysqlTutorial/mysql-p...l-injection.php

  • 0
  Knad said:
Hey,

mysql_query("INSERT INTO TABLENAME (column1, column2etc) VALUES ('.$_POST['textbox1'].', '.$_POST['textbox2'].' ) ") or die(mysql_error());

Just make sure you validate your input! As anyone could put in some dodgy values into the textboxes and it would be ran as a SQL query.

Look here: http://www.tizag.com/mysqlTutorial/mysql-p...l-injection.php

We will run the script only on one pc (which doubles as a server) just for one day, and it won't be connected to any networks, so that won't be necessary since I will be the only person entering values.

@Pip: thanks, gonna try it!

  • 0
  Knad said:
Hey,

mysql_query("INSERT INTO TABLENAME (column1, column2etc) VALUES ('.$_POST['textbox1'].', '.$_POST['textbox2'].' ) ") or die(mysql_error());

Just make sure you validate your input! As anyone could put in some dodgy values into the textboxes and it would be ran as a SQL query.

Look here: http://www.tizag.com/mysqlTutorial/mysql-p...l-injection.php

:blush: fair cop guv

@Ambroos, glad you're enjoying it - what knad says is a good habit to get into...

If you're only using form input, you could just stick this line at the top of every page with your connect string

//stolen from php.net
array_map("mysql_real_escape_string",$_POST);

can you tell I'm bored...

  • 0
  pip said:
:blush: fair cop guv

@Ambroos, glad you're enjoying it - what knad says is a good habit to get into...

If you're only using form input, you could just stick this line at the top of every page with your connect string

//stolen from php.net
 array_map("mysql_real_escape_string",$_POST);

can you tell I'm bored...

:D

Thanks, I'll remember it.

Okay, now my score input form is done and everything works fine in my Virtualboxed Xampp! Just using a simple JS to add up all the scores for the single matches. To do: make the scoreboard with autosort... and that'll be tomorrow :p

Ty everyone ^^ I love Neowin

(now i just hope our school's IT department will give me an admin username/pass so i can at least install xampp)

  • 0

Hi everyone!

Just finished my stuff, and I'd just like to show you what I've made! Wouldn't have been possible without Pip's great hints links and examples!

Screenshots are from a virtualboxed XP with Firefox 3.1b3 and the window resolution we will be using to project it with.

1. Select what group you want to edit (uses form post that a php page picks up)

post-151800-1237843550_thumb.png

2. Enter the scores for the group (O1 - O20 stands for the 20 different things ppl can get scores for, eten and geld are two bonusthings they get points for).

A javascripts adds up all the form fields and puts the total in totaal. (the +1 buttons just add 1 to the corresponding text field).

post-151800-1237843666_thumb.png

3. Update done page, shows a quick review of the group you just edited. Go to group input on left side to start new edit

post-151800-1237843713_thumb.png

4. The live scoreboard (for display on a second monitor) shows the Top 10 with groupnames and corresponding scores (the 'totaal' thing). Small between brackets is the group ID (number they will have to remember themselves too) so I can find things quickly if something is wrong etc.

post-151800-1237843832_thumb.png

I know it needs some font tweaking, but that's just some CSS and a 1 minute job, but not today!

If anything goes really wrong I can always just go to PHPMyAdmin and fix it. Nothing should go wrong though, I'm the only one who will be entering scores so I know what to do :p

I am VERY happy with the result as it is EXACTLY what I wanted ^^ It felt awesome to create something yourself if it doesnt exist yet!

Thanks everyone!

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Kiss - I Wanna Rock N Roll All Night  
    • HUGE DOWNGRADE for "only" $15! What a sweet offer blackmail
    • NWinfo 1.3.0 by Razvan Serea NWinfo is a lightweight tool designed to give a quick look at your computer's key details, from hardware to software specs, without any fuss. You don't need to install it; just download, run, and see everything you need on one screen. It displays essential info about your CPU, memory, disk drives, network, and even the system's operating details. Since it’s portable, you can carry NWinfo on a USB stick and use it on any Windows machine, making it a handy tool for both tech enthusiasts and troubleshooting. NWinfo key features: Lightweight and portable—no installation required Simple, user-friendly interface for easy navigation Displays detailed CPU information, including model and speed Shows memory (RAM) specifications and usage Provides disk information, including storage capacity and usage Lists network adapters and IP addresses Displays motherboard details, including model and manufacturer Shows system uptime and operating system version Detects graphics card information and driver details Includes battery status for laptops Provides monitor specifications, including resolution and refresh rate Displays BIOS version and other firmware details Offers a summary of active processes and services Generates detailed logs for sharing or troubleshooting Open-source and free, allowing for customization and community support NWinfo 1.3.0 changelog: Update libcpuid. Display CPU technology. RyzenAdj is no longer included. Fix use-after-free bugs in nwinfo. Note: NWinfo might trigger a few antivirus alerts or show up with warnings on VirusTotal due to its low download frequency. If you have any concerns, you're welcome to review the full source code available on the developer’s repository. Download: NWinfo 1.3.0 | 2.2 MB (Open Source) View: NWinfo Website | NWinfo@GitHub | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • They ban knives too. They like to ban stuff.
  • Recent Achievements

    • Week One Done
      abortretryfail earned a badge
      Week One Done
    • First Post
      Mr bot earned a badge
      First Post
    • First Post
      Bkl211 earned a badge
      First Post
    • One Year In
      Mido gaber earned a badge
      One Year In
    • One Year In
      Vladimir Migunov earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      495
    2. 2
      snowy owl
      253
    3. 3
      +FloatingFatMan
      251
    4. 4
      ATLien_0
      228
    5. 5
      +Edouard
      192
  • Tell a friend

    Love Neowin? Tell a friend!