【问题标题】:How to work with data from a select query on a mssql array如何使用 mssql 数组上的选择查询中的数据
【发布时间】:2017-04-21 10:48:49
【问题描述】:

我首先要打个招呼,我是 MSSQL 和 PHP 的初学者,但我正在构建一个工作中的项目,需要一些指导。

我目前拥有的是一个工作的 MS SQL 数据库和一个将显示来自该数据库的数据的网页。连接和交互目前正在工作,我可以使用 PDO 执行简单的查询,并使用 PHP 网页显示它们。

我认为我想做的事情应该很简单,但不知道从哪里开始询问,因为我还不知道正确的术语,而且我也很愿意寻求帮助 =)

好的 - 所以这是我的问题:

$stmt = $pdo->prepare("SELECT TOP 25 * FROM tonerDel ORDER BY tonerID DESC");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_BOTH);

然后我有一个 for each 循环来显示来自该查询的数据。我想做的是处理这个查询中的数据。

简单来说,我希望显示一列中的一个字段。列表中的最后一个 tonerID(最大的数字),用于显示我们公司迄今为止完成的交付总数。

谁能指引我正确的方向?

我可能很愚蠢,但现在已经尝试了 3 天,但我一无所获。我确实尝试了一个 MAX 函数,但代码显示的内容与驱动程序不支持。

根据要求提供一些示例数据(删除客户名称后看起来有点乱):

Last 25 deliveries:Total Deliveries:
5732	2017-04-20	LS4	KONICAC284	A4FK021014605
5731	2017-04-20	Ltd	XEROX6605	3188473848
5730	2017-04-20	 BD6	KONICAC280	A0ED022002354
5729	2017-04-20		XEROX6605	3188442977
5728	2017-04-20	 T/A Whitegates	OLIVMF222	A5C4321105153
5727	2017-04-20		KONICAC360	A0ED021004896

在这种情况下,我想检索上面第 1 行中显示的最后一个 tonerID,即 5732,因为这是输入的最后一个交货行,因为 SELECT 查询以 DESC 顺序检索最后 25 个交货。

【问题讨论】:

  • 请提供一些示例数据和预期结果
  • 如果tonerID 是您需要的唯一字段,则不要使用*,而是在您的选择命令中使用tonerID。如果您只想要最后一个,请在查询末尾添加 LIMIT 1
  • 这就是问题所在,我想保存另一个单独的查询,只是为了获取数组中已有的数据。所以上面的列表显示在网页上,然后你能看到它在哪里显示 Total Deliveries: - 我希望通过某种方式从数组中抓取 5732 来显示它。

标签: php sql-server pdo


【解决方案1】:

有点令人困惑的问题,但听起来您想选择tonerID 列,然后选择该列中的最后一行,即交付总数。

为此,您可以像这样使用 MAX 函数:

$stmt = $pdo->prepare("SELECT MAX(tonerID) as totalTonerID FROM tonerDel");

该查询实质上将在数据库中搜索 tonerID 中的最高数字,这应该始终是您的总数。

【讨论】:

  • 感谢您抽出宝贵时间回答。对,所以我不能使用现有的查询,我必须做 2 个单独的查询?这真的是一个问题,我可以用一个查询做两件事吗?另外,就像我提到的,MAX 函数返回错误,但我现在会再试一次。
  • 翻天覆地,感谢您的建议,终于让它工作了!非常感谢,我会在下面发布我所做的。
猜你喜欢
  • 2017-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-15
  • 1970-01-01
  • 2023-01-18
相关资源
最近更新 更多