【问题标题】:Retrieving a particular column value from multiple data rows PHP/MySQL从多个数据行 PHP/MySQL 中检索特定列值
【发布时间】:2014-01-08 01:59:01
【问题描述】:

我试图将一个查询放在一起,该查询从表中回显/打印一个特定的列值,但在特定的时间范围内,但我运气不佳。从下面的查询中,我试图在 targets_set 列下的 targets_id=1 行中获取“267”以回显/打印。我收到错误消息 “mysql_fetch_assoc():提供的参数不是有效的 MySQL 结果资源”。如何让它回显?

<?php
$dealer = $_SESSION['sp_dealer_code'];
require_once ('/database.php');
$result = mysql_query("SELECT targets_set FROM targets WHERE targets_nmc='F80', sp_dealer_code=$dealer AND `targets_date`
BETWEEN '2014-01-01 00:00:00' AND '2014-01-31 23:59:59' LIMIT 1");
$row = mysql_fetch_assoc($result);
echo $row['targets_set'];
?>

数据库表'targets'和一些示例数据

targets_id  | sp_dealer_code | targets_nmc  | targets_set  | targets_actual | targets_date
1           | 1234           | F80          |  267         | 270            | 2014-01-01 01:00:00
2           | 1234           | F8R          |  350         | 300            | 2014-02-01 01:00:00
3           | 4567           | F80          |  210         | 200            | 2014-03-01 01:00:00
4           | 4567           | F8R          |  267         | 260            | 2014-01-01 01:00:00

【问题讨论】:

  • 在 CLI(或 GUI)中运行查询并检查错误的好习惯。您还可以检查 PHP 代码中的错误。可能你有一个 SQL 错误。 php.net/mysql_fetch_assoc

标签: php mysql select limit between


【解决方案1】:

您的查询已关闭。 WHERE A, B AND C 不是有效的 MySQL;而是应该是WHERE A AND B AND C:

SELECT targets_set
FROM targets
WHERE 
    targets_nmc='F80' 
    AND sp_dealer_code=$dealer 
    AND `targets_date` BETWEEN '2014-01-01 00:00:00' AND '2014-01-31 23:59:59'
LIMIT 1

执行语句时,不会返回任何结果集。这就是当您尝试以关联数组的形式获取结果时收到错误消息的原因。

【讨论】:

    猜你喜欢
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多