• 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

    • Yeah, but these new clocks aren't going to change the fact that time is an illusion, and vacation time doubly so.
    • Science is almost ready to "redefine the second" with this new research by Sayan Sen Image by Samer Daboul via Pexels In an effort to make keeping time even more accurate, researchers from six European countries joined forces to compare ten ultra-precise optical clocks at the same time — something that’s never been done on this scale before. These clocks, which use lasers to measure how atoms jump between energy levels, are much more accurate than traditional cesium atomic clocks. In fact, optical clocks could lose or gain less than a second over billions of years. To see how closely these clocks agreed with each other, the team ran 38 measurements known as frequency ratios. Four of these had never been done directly before, and many were done with better precision than ever. The experiment helps move us closer to updating how the world defines one second potentially switching from cesium clocks to optical ones. Helen Margolis from the UK’s National Physical Laboratory said, “The accurate time and frequency signals provided by atomic clocks are essential for many everyday technologies like GPS, managing power grids and keeping financial transactions in sync.” Connecting these clocks over long distances was tricky. Scientists used two linking methods: GPS signals from satellites and custom optical fiber cables. GPS was accessible to all clocks but didn’t offer the best accuracy due to noise and signal issues. Fiber links used in France, Germany and Italy offered 100 times better precision but could only cover short distances. For clocks in the same lab, like those in Germany and the UK, short fiber cables helped reduce uncertainty even more. The findings were published in Optica, a journal focused on optical science. The team also looked at how the various frequency ratios compared across the different systems to spot any mismatches or patterns. “These measurements provide critical information about what work is still needed for optical clocks to achieve the precision and reliability required for use in international timekeeping,” said Marco Pizzocaro from Italy’s INRiM. He added that the setup acted like a distributed lab, which could be used for deeper physics research, like searching for dark matter or testing the foundations of physics. Coordinating all ten clocks and keeping them running in sync across six countries took a lot of preparation. Some results didn’t match predictions, but having so many clocks operating together helped spot where things went wrong. “Not all the results confirmed what we expected, and we observed some inconsistencies in the measurements,” said Rachel Godun from NPL. “However, comparing so many clocks at once and using more than one technique for linking the clocks made it easier to identify the source of the problem.” The researchers say more work is needed to cut down measurement uncertainty and make sure these optical clocks stay reliable over time. If they do, these clocks could soon be the ones we use to define time worldwide. As Thomas Lindvall from Finland’s VTT MIKES put it: “With a coordinated set of measurements, it becomes possible to check consistency while also providing more trusted results.” Source: Optica (link1, link2) This article was generated with some help from AI and reviewed by an editor. Under Section 107 of the Copyright Act 1976, this material is used for the purpose of news reporting. Fair use is a use permitted by copyright statute that might otherwise be infringing.
    • Who goofed? I got to know. Wiki lists the internet speed of Singapore at 336.45 per Ookla, which would put them second behind Lyons France with the world's fastest median internet speed.
    • I'm really happy that you're looking to apply for a role in writing articles for Neowin. We could do with more, regardless, so everyone is happy and has a story to read when ever they login to the site. https://www.neowin.net/contact/apply I look forward to reading what you have to say in the near future in one of the published articles here on Neowin. You can do it. You got this.
    • Uranus releases about 15% more energy than it receives from the Sun, according to two new papers published in the journal Monthly Notices of the Royal Astronomical Society and the journal Geophysical Research Letters. The amount of heat a planet exudes could be an indication of its age: the less heat released relative to the heat absorbed from the Sun, the older the planet is. Uranus stood out from the other planets because it appeared to give off as much heat as it received, implying it had none of its own. This puzzled scientists. Some hypothesized that perhaps the planet is much older than all the others and has cooled off completely. Others proposed that a giant collision — the same one that may have knocked the planet on its side—blasted out all of Uranus’ heat. But none of these hypotheses satisfied scientists, motivating them to solve Uranus’ cold case. https://www.sci.news/space/warmer-uranus-14079.html  
  • Recent Achievements

    • Rookie
      Snake Doc went up a rank
      Rookie
    • First Post
      nobody9 earned a badge
      First Post
    • One Month Later
      Ricky Chan earned a badge
      One Month Later
    • First Post
      leoniDAM earned a badge
      First Post
    • Reacting Well
      Ian_ earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      495
    2. 2
      Michael Scrip
      203
    3. 3
      ATLien_0
      199
    4. 4
      Xenon
      136
    5. 5
      +FloatingFatMan
      116
  • Tell a friend

    Love Neowin? Tell a friend!