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

LVL 2
Dan560Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
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
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
MySQL Server

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.