我依赖于基于两个不同表的查询/计算(由第三个表连接)。表单收集信息以输入到tbl2,tbl1通过外键链接到tbl2。我需要根据表单数据和来自tbl1的值计算并在tbl2中插入一个值。
我的查询+计算如下所示:
$res = $user->runQuery("SELECT binWeight FROM jobBins jb JOIN butchJobOpen bjo ON bjo.jobBins_binID = jb.binID JOIN butchJobClose bjc ON bjc.butchJobOpen_butchJobNum = bjo.butchJobNum WHERE bjo.butchJobNum = '$butchJobOpen_butchJobNum'");
$res->execute();
$row = $res->fetch(PDO::FETCH_ASSOC);
//Calculate $trimYield
$trimYield = $row['binWeight'] / $trimWeight;
查询应该使用表单值$ butchJobOpen_butchJobNum,验证bin是否存在于连接条件中,并返回bin的权重....这可以作为独立查询正常工作,但是,我无法从我的任何结果中获得任何结果计算......我确信我只是错过了一些愚蠢的东西......但是我被困住了,所以我把它提升到了无情的SO社区,希望在投降时,有人会指责我朝着正确的方向嘲笑我明显的错误。
答案 0 :(得分:1)
好的,这是你必须要做的事情
$user->runQuery
使用vanilla PDO。所以
ini_set('display_errors',1);
error_reporting(E_ALL);
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION];
$pdo = new PDO($dsn, $user, $pass, $opt);
var_dump("that argle-bargle var name I can't type it:",$butchJobOpen_butchJobNum);
$sql = "SELECT binWeight FROM jobBins jb
JOIN butchJobOpen bjo ON bjo.jobBins_binID = jb.binID
JOIN butchJobClose bjc ON bjc.butchJobOpen_butchJobNum = bjo.butchJobNum
WHERE bjo.butchJobNum = ?";
$res = $pdo->prepare($sql);
$res->execute([$butchJobOpen_butchJobNum]);
$binWeight = $res->fetchColumn();
var_dump("bin weight:", $binWeight);
var_dump("trim weight:", $trimWeight);
$trimYield = $binWeight / $trimWeight;
var_dump("finally", $trimYield);
var_dump部分是最重要的部分,可以让您了解程序中发生了什么。比一小时盯着代码或者在SO上发出呜呜声要好10000倍。
这里的要点是验证每个血腥变量的状态。哟看看它是否含有任何预期的东西。