Forum Moderators: coopster

Message Too Old, No Replies

How to insert a variable in a database which is calculated by 3 others

Expected calculated valus showing as null in database table

         

Holborn

9:53 am on Jul 13, 2010 (gmt 0)

10+ Year Member



Hello all :)
This is my 1 st post here so please be tender with me :)

Ok im having a problem when in an insert data page some variables that are calculated by 3 other columns of the table (with simple math) are not being inserted in the table.The last 7 variables are the those that having the insertion problem.

This is my insert code (syntax is correct)

<?php require_once('../Connections/gas_connection.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

mysql_select_db($database_gas_connection, $gas_connection);
$query_KINISEIS = "SELECT * FROM kiniseis";
$KINISEIS = mysql_query($query_KINISEIS, $gas_connection) or die(mysql_error());
$row_KINISEIS = mysql_fetch_assoc($KINISEIS);
$totalRows_KINISEIS = mysql_num_rows($KINISEIS);


// declare variables
$venzini_kinisis_1 = @($row_KINISEIS['kinisis_1c']/$row_KINISEIS['kinisis_1b']) * $row_KINISEIS['kinisis_1a'];
$venzini_100ara = @($row_KINISEIS['100c']/$row_KINISEIS['100b']) * $row_KINISEIS['100a'];
$venzini_super_1 = @($row_KINISEIS['super_1c']/$row_KINISEIS['kinisis_1b']) * $row_KINISEIS['super_1a'];
$venzini_95_1 = @($row_KINISEIS['95_1c']/$row_KINISEIS['95_1b']) * $row_KINISEIS['95_1a'];
$venzini_95_2 = @($row_KINISEIS['95_2c']/$row_KINISEIS['95_2b']) * $row_KINISEIS['95_2a'];
$venzini_super_2 = @($row_KINISEIS['super_2c']/$row_KINISEIS['super_2b']) * $row_KINISEIS['super_2a'];
$venzini_kinisis_2 = @($row_KINISEIS['kinisis_2c']/$row_KINISEIS['kinisis_2b']) * $row_KINISEIS['kinisis_2a'];

//start of data insertion
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "insert_form")) {
$insertSQL = sprintf("INSERT INTO kiniseis (kinisis_1a, `100a`, super_1a, `95_1a`, `95_2a`, super_2a, kinisis_2a, kinisis_1b, `100b`, super_1b, `95_1b`, `95_2b`, super_2b, kinisis_2b, kinisis_1c, `100c`, super_1c, `95_1c`, `95_2c`, super_2c, kinisis_2c, kinisis_1d, `100d`, super_1d, `95_1d`, `95_2d`, super_2d, kinisis_2d, kinisis_1e, `100e`, super_1e, `95_1e`, `95_2e`, super_2e, kinisis_2e, kinisis_a, `100_a`, `95_a`, super_a, kinisis_b, `100_b`, `95_b`, super_b, `date`, fpa, polisi_kinisis_1, polisi_100aras, polisi_super_1, polisi_95_1, polisi_95_2, polisi_super_2, polisi_kinisis_2) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['1'], "double"),
GetSQLValueString($_POST['2'], "double"),
GetSQLValueString($_POST['3'], "double"),
GetSQLValueString($_POST['4'], "double"),
GetSQLValueString($_POST['5'], "double"),
GetSQLValueString($_POST['6'], "double"),
GetSQLValueString($_POST['7'], "double"),
GetSQLValueString($_POST['8'], "double"),
GetSQLValueString($_POST['9'], "double"),
GetSQLValueString($_POST['10'], "double"),
GetSQLValueString($_POST['11'], "double"),
GetSQLValueString($_POST['12'], "double"),
GetSQLValueString($_POST['13'], "double"),
GetSQLValueString($_POST['14'], "double"),
GetSQLValueString($_POST['15'], "double"),
GetSQLValueString($_POST['16'], "double"),
GetSQLValueString($_POST['17'], "double"),
GetSQLValueString($_POST['18'], "double"),
GetSQLValueString($_POST['19'], "double"),
GetSQLValueString($_POST['20'], "double"),
GetSQLValueString($_POST['21'], "double"),
GetSQLValueString($_POST['22'], "double"),
GetSQLValueString($_POST['23'], "double"),
GetSQLValueString($_POST['24'], "double"),
GetSQLValueString($_POST['25'], "double"),
GetSQLValueString($_POST['26'], "double"),
GetSQLValueString($_POST['27'], "double"),
GetSQLValueString($_POST['28'], "double"),
GetSQLValueString($_POST['29'], "double"),
GetSQLValueString($_POST['30'], "double"),
GetSQLValueString($_POST['31'], "double"),
GetSQLValueString($_POST['32'], "double"),
GetSQLValueString($_POST['33'], "double"),
GetSQLValueString($_POST['34'], "double"),
GetSQLValueString($_POST['35'], "double"),
GetSQLValueString($_POST['36'], "double"),
GetSQLValueString($_POST['37'], "double"),
GetSQLValueString($_POST['38'], "double"),
GetSQLValueString($_POST['39'], "double"),
GetSQLValueString($_POST['40'], "double"),
GetSQLValueString($_POST['41'], "double"),
GetSQLValueString($_POST['42'], "double"),
GetSQLValueString($_POST['43'], "double"),
GetSQLValueString($_POST['date'], "date"),
GetSQLValueString($_POST['select_fpa'], "double"),
GetSQLValueString($_POST[".$venzini_kinisis_1"], "double"),
GetSQLValueString($_POST[".$venzini_100ara"], "double"),
GetSQLValueString($_POST[".$venzini_super_1"], "double"),
GetSQLValueString($_POST[".$venzini_95_1"], "double"),
GetSQLValueString($_POST[".$venzini_95_2"], "double"),
GetSQLValueString($_POST[".$venzini_super_2"], "double"),
GetSQLValueString($_POST[".$venzini_kinisis_2"], "double"));

mysql_select_db($database_gas_connection, $gas_connection);
$Result1 = mysql_query($insertSQL, $gas_connection) or die(mysql_error());

$insertGoTo = "../confirmation.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}

?>


Can someone open my eyes?

Thanks in advance:)

Holborn

10:53 am on Jul 13, 2010 (gmt 0)

10+ Year Member



Ok i made it more simple cause the code wasnt so eye friendly

// declare variables for 2nd insertion
$venzini_kinisis_1 = ($_REQUEST['15']/$_REQUEST['8']) * $_REQUEST['1'];
$venzini_100ara = ($_REQUEST['16']/$_REQUEST['9']) * $_REQUEST['2'];
$venzini_super_1 = ($_REQUEST['17']/$_REQUEST['10']) * $_REQUEST['3'];
$venzini_95_1 = ($_REQUEST['18']/$_REQUEST['11']) * $_REQUEST['4'];
$venzini_95_2 = ($_REQUEST['19']/$_REQUEST['12']) * $_REQUEST['5'];
$venzini_super_2 = ($_REQUEST['20']/$_REQUEST['13']) * $_REQUEST['6'];
$venzini_kinisis_2 = ($_REQUEST['21']/$_REQUEST['14']) * $_REQUEST['7'];

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "insert_form")) {
$insertSQL = sprintf("INSERT INTO kiniseis (polisi_kinisis_1, polisi_100aras, polisi_super_1, polisi_95_1, polisi_95_2, polisi_super_2, polisi_kinisis_2) VALUES (%s, %s, %s, %s, %s, %s, %s)",

GetSQLValueString($_POST['".$venzini_kinisis_1"'], "double"),
GetSQLValueString($_POST['".$venzini_100ara"'], "double"),
GetSQLValueString($_POST['".$venzini_super_1"'], "double"),
GetSQLValueString($_POST['".$venzini_95_1"'], "double"),
GetSQLValueString($_POST['".$venzini_95_2"'], "double"),
GetSQLValueString($_POST['".$venzini_super_2"'], "double"),
GetSQLValueString($_POST['".$venzini_kinisis_2"'], "double"));


This gives me always result 0 but ofcourse it shouldnt :(
Please help me

Matthew1980

10:57 am on Jul 13, 2010 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Hi there holborn,

Welcome to the forum :) [webmasterworld.com ]

The last 7 values you say, Ok.

GetSQLValueString($_POST[".$venzini_kinisis_1"], "double"),
GetSQLValueString($_POST[".$venzini_100ara"], "double"),
GetSQLValueString($_POST[".$venzini_super_1"], "double"),
GetSQLValueString($_POST[".$venzini_95_1"], "double"),
GetSQLValueString($_POST[".$venzini_95_2"], "double"),
GetSQLValueString($_POST[".$venzini_super_2"], "double"),
GetSQLValueString($_POST[".$venzini_kinisis_2"], "double"));


Your double quoting the array keys when they are vars, and for reasons unknown, trying to concatenate the vars :)

Try replacing (use same logic with the rest):-

$_POST[".$venzini_kinisis_1"]

with:-

$_POST[$venzini_kinisis_1]

That should make life better :)

[EDIT]
Hopefully as you are using this in mysql context, you are suitably sanitising the data before the query is sent?

Also, if you had error reporting on, error_reporting(E_ALL); set, that could have thrown an error for you to see.

Cheers,
MRb

mtptl

7:14 am on Jul 14, 2010 (gmt 0)



There is no such thing as a "built-in" server-side scripting language. The closest you would get would probably be PHP, as it is installed on most commercial servers, and it is included in WAMP and LAMP server packages (Windows or Linux, Apache, MySQL and PHP), that are widely used as a one-click installation progress for installing a local development (or production) server.

[edited by: bill at 7:41 am (utc) on Jul 14, 2010]
[edit reason] promotional links removed [/edit]