[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 263
  • Last Modified:

PHP using data from table.

Hi,

I have a PHP script that calculates an employees potential bonus, based on the figures that are entered in my html form.

The form is used to calculate an employees bonus. The form asks the following questions.

Market
What is your salary
What is review score
What is the customer satisfaction score

However to get their potential bonus the company profits figure needs to be pulled from my mysql table. This figure is not entered by the user however it is inserted using another PHP form used by their managers. This form works well.

So my calculation would look like

Salary * review * customer satisfaction * profit factors

My table for the company profits looks like this
Market     Profit_Factor
UK               50
BE                200
FR                 40

My first question is how can I include the profit factor figure into my calculation.
My second question is how can I tell PHP to use the profit factor that matches the market selected in my form.

<html>
<body>
 
<center>
 
<h2> ADD TWO NUMBERS! </h2>
 
<form action="addition.php" method="post">

<CENTER><input type="text"  name="salary_factor" id="salary_factor" /></center>


<td><select id="personal_factor" name='personal_factor'
   
    <option value="None">Please Select Value</option>
    <option value="135">Outstanding Review</option>
    <option value="120">Excellent</option>
    <option value="100">Good</option>
    <option value="75">Satisfactory</option>
    <option value="0">Unsatifactory</option>
 
  
   </select></td>


<td><select id="customer_factor" name='customer_factor'
   
    <option value="None">Please Select Value</option>
    <option value="115">90%</option>
    <option value="75">80%</option>
    <option value="50">>70%</option>
    <option value="0"><=60%</option>
 
  
   </select></td>




 =
<T><input type="submit" value="Answer is ->>" />
</form>
 

Open in new window


<?php
$personal_factor = $_POST["personal_factor"];
$customer_factor = $_POST["customer_factor"];
$salary_factor = $_POST["salary_factor"];
$answer = $personal_factor * $customer_factor * $salary_factor;
 
echo $answer;
?>

Open in new window

0
Dan560
Asked:
Dan560
  • 2
1 Solution
 
Scott MadeiraCommented:
In your second PHP script you would need to call the database and get the profit factor to add to your calculation.

Here are the basics.  You need to add all the error checking and input sanitization.

<?php

// You will want to sanitize all of your input data to eliminate 
// chance for hacking on form inputs

// Connect to your MySQL database here
$db = mysql_connect( connection parameters);


// You need the market info from your form
$market = $_POST["market"];

// Do SQL query to get market factor
$sql = "select profit_factor from market_table where marketname = '".$market."';";

$result = mysql_query($sql, $db);
$row = mysql_fetch_row($result);

// Get the profit from returned data
$profit_factor = $row['profit_factor'];

$personal_factor = $_POST["personal_factor"];
$customer_factor = $_POST["customer_factor"];
$salary_factor = $_POST["salary_factor"];



$answer = $profit_factor * $personal_factor * $customer_factor * $salary_factor;
 
echo $answer;
?>

Open in new window

0
 
Dan560Author Commented:
Hi I have modified the script slightly to connect to my DB..

However I get the following error messages..

Notice: Undefined variable: db in C:\xampp\htdocs\boncalc\addition.php on line 20

Warning: mysql_query() expects parameter 2 to be resource, null given in C:\xampp\htdocs\boncalc\addition.php on line 20

Warning: mysql_fetch_row() expects parameter 1 to be resource, null given in C:\xampp\htdocs\boncalc\addition.php on line 21
0

Thanks in advance for your help.

<?php

$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="bonuscalc"; // Database name 
$tbl_name="market_values"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");


// You need the market info from your form
$market = $_POST["market"];

// Do SQL query to get market factor
$sql = "select profit_factor from market_values where marketname = '".$market."';";

$result = mysql_query($sql, $db);
$row = mysql_fetch_row($result);

// Get the profit from returned data
$profit_factor = $row['profit_factor'];

$personal_factor = $_POST["personal_factor"];
$customer_factor = $_POST["customer_factor"];
$salary_factor = $_POST["salary_factor"];



$answer = $profit_factor * $personal_factor * $customer_factor * $salary_factor;
 
echo $answer;
echo $profit_factor;
?>]

Open in new window

0
 
Dan560Author Commented:
Ok I've managed to solve it.

The first error I posted was because I could not connect to the DB I used the following code to help me debug that -

$result = mysql_query($sql, $db) or die (mysql_error());

secondly I got an error stating Undefined index on line 21

I had to change
mysql_fetch_row.
to mysql_fetch_assoc
source: http://stackoverflow.com/questions/7895862/mysql-undefined-indexes-even-though-they-have-been-defined

Hopefully that info will be useful to someone.
However thanks for your help as it definitely set me on the right path.
0

Featured Post

Nothing ever in the clear!

This technical paper will help you implement VMware’s VM encryption as well as implement Veeam encryption which together will achieve the nothing ever in the clear goal. If a bad guy steals VMs, backups or traffic they get nothing.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now