Solved

PHP using data from table.

Posted on 2012-04-04
3
251 Views
Last Modified: 2012-04-04
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
Comment
Question by:Dan560
  • 2
3 Comments
 
LVL 14

Accepted Solution

by:
Scott Madeira earned 500 total points
Comment Utility
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
 
LVL 2

Author Comment

by:Dan560
Comment Utility
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
 
LVL 2

Author Comment

by:Dan560
Comment Utility
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

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

As a database administrator, you may need to audit your table(s) to determine whether the data types are optimal for your real-world data needs.  This Article is intended to be a resource for such a task. Preface The other day, I was involved …
Creating and Managing Databases with phpMyAdmin in cPanel.
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to count occurrences of each item in an array.

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now