【问题标题】:Undefined Variable for sum(value) AS "Variable" SQLsum(value) 的未定义变量 AS“变量”SQL
【发布时间】:2021-05-26 11:17:05
【问题描述】:

我目前正在努力定义我的变量之一。我有这个问题:

 $query = 'SELECT e.Emp_ID, e.Name, sum(c.Price) AS "Sales"
        FROM Employees e 
        JOIN Sales s 
        on e.Emp_ID = s.Emp_ID 
        JOIN Carmodels c 
        ON c.Car_ID = s.Car_ID
        GROUP BY e.name
        ORDER BY e.Emp_ID'; 

witch 从我的数据库中获取数据到我的 php 项目。在 PHP 项目中,我试图创建一个这样的数组:

while($row = $result->fetch(PDO::FETCH_ASSOC)){
        extract($row); 

        $emp_item = array(
            'Emp_ID' => $Emp_ID, 
            'Name' => $Name, 
            'Sales' => $Sales
        );

        array_push($emp_array['data'], $emp_item); 
    }

    echo json_encode($emp_array); 

但我得到“未定义的变量:销售”,这使得该变量无法使用。你知道这可能是什么原因以及如何解决它吗?

【问题讨论】:

  • 这整个shebang是完全没有必要的。 array_push($emp_array['data'], $row); 会产生完全相同的结果。您将关联数组中的值提取到变量中,然后将这些变量值分配给具有相同键的关联数组。你回到了你开始的地方。
  • 老实说,我认为这是他们被定义的地方,因为这就是其他 $Emp_ID 和 $Name 的工作方式......
  • @El_Vanja 在某种程度上是正确的,但它只显示其他两个列......
  • 这是您现在遇到的同样问题的症状。出于某种原因,您的总和没有与其他列一起获取。

标签: php sql pdo


【解决方案1】:

您缺少实际执行 SQL 查询的代码部分。比如……

$mysqli = new mysqli("localhost","my_user","my_password","my_db");
$result = $mysqli->query($query)

while($row = $result->fetch_assoc()) {
    $emp_item = array(
        'Emp_ID' => $row['Emp_ID'], 
        'Name' => $row['Name'], 
        'Sales' => $row['Sales']
    );
    // do more with $emp_item here

  }

【讨论】:

  • 下次:这应该是评论,而不是答案:)
猜你喜欢
  • 2012-02-02
  • 2011-06-11
  • 2021-02-27
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
  • 2012-06-06
相关资源
最近更新 更多