This doesn't work:
function initConn($db,$table){
global $conn,$rs;
if(!$conn = new COM("adodb.connection")){
print "<br>Could not create ADO connection.";
//die;
}
else{
print "<br>Connection created successfully.";
}
if(!$strConn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" . realpath($db) . ""){
print "<br>Could not map database path. Check initConn calling.";
//die;
}
else{
print "<br>Database mapped successfully.";
}
$conn->open($strConn);
$rs = $conn->execute($table);
return $rs;
}
$strSQL= "SELECT * FROM pw WHERE password = '" . $_POST["password"] . "'";
print $strSQL;
$rs = initConn("db/pw.mdb",$strSQL);
$survey = $rs->fields["survey"]->value;
$conn->close();
$baseSQLa = "SELECT ";
$baseSQLb = " FROM results";
function calcDev($k){
//STANDARD DEVIATION
global $baseSQLa, $baseSQLb;
global $conn,$rs,$strSQL,$sum1,$sum2,$y,$x;
$strSQL = $baseSQLa . "SUM(result" . $k . "^2) as sum1, SUM(result" . $k. ")^2 as sum2, COUNT(result" . $k . ") AS count" . $baseSQLb;
$rs = initConn("db/".$survey.".mdb",$strSQL);
print $strSQL;
$sum1 = $rs->fields["sum1"]->value;
$sum2 = $rs->fields["sum2"]->value;
$y = $rs->fields["count"]->value;
$conn->close();
print "!" . $sum2 . "!";
$x = ($y * $sum1) - $sum2;
return round((($x/($y*($y-1)))^0.5));
}
print calcDev(1);
While this does:
function initConn($db,$table){
global $conn,$rs;
if(!$conn = new COM("adodb.connection")){
print "<br>Could not create ADO connection.";
//die;
}
else{
print "<br>Connection created successfully.";
}
if(!$strConn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" . realpath($db) . ""){
print "<br>Could not map database path. Check initConn calling.";
//die;
}
else{
print "<br>Database mapped successfully.";
}
$conn->open($strConn);
$rs = $conn->execute($table);
return $rs;
}
$strSQL= "SELECT * FROM pw WHERE password = '" . $_POST["password"] . "'";
print $strSQL;
$rs = initConn("db/pw.mdb",$strSQL);
$survey = $rs->fields["survey"]->value;
$conn->close();
$baseSQLa = "SELECT ";
$baseSQLb = " FROM results";
$k = 1;
$strSQL = $baseSQLa . "SUM(result" . $k . "^2) as sum1, SUM(result" . $k. ")^2 as sum2, COUNT(result" . $k . ") AS count" . $baseSQLb;
$rs = initConn("db/".$survey.".mdb",$strSQL);
print $strSQL;
$sum1 = $rs->fields["sum1"]->value;
$sum2 = $rs->fields["sum2"]->value;
$y = $rs->fields["count"]->value;
$conn->close();
print "!" . $sum2 . "!";
$x = ($y * $sum1) - $sum2;
print round((($x/($y*($y-1)))^0.5));
//print calcDev(1);
I think it has something to do with my variable scope, but I don't have much in the way of experience with that. Any ideas?
Thanks,
Nick