【问题标题】:Using mysql_num_rows with a select within select query在选择查询中使用 mysql_num_rows 和选择
【发布时间】:2019-10-06 19:04:12
【问题描述】:

我刚刚第一次使用带有选择的选择。它似乎有效,当我在 phpMyAdmin 中运行它时,我得到了想要的结果。但是,当我使用$variable = mysql_num_rows($queryresult); 时,我什么也得不到。我猜它是 null 或其他东西,因为它不会回显。这是查询:

$resultxl = mysql_query(select * from (Select * from mon_content_lid where mon_date_last!='0000-00-00' ORDER BY lid, mon_date_last desc) as x group by `lid`);
$numx1 = mysql_num_rows($resultxl);
echo $numx1;

没有结果。感谢您的帮助。

【问题讨论】:

  • 您尝试过什么来调试问题?您是否检查过该查询是否有效? MySQL 是否报错?
  • 嗯,正如我所说,查询在 phpMyAdmin 中给出了正确的结果,没有错误,所以我认为它正在工作。我从下面的答案中看到我正在使用“光标”。我想也许这就是这里的问题?也许这不适用于 mysql_num_rows。我会对此进行调查。
  • 不知道我做了什么才被否决。由于我是新手,所以我的问题基于以下两个帖子:link & link;两者都给出了类似的详细程度类似的问题类似的措辞,没有给出太多的调试信息。他们似乎受到了热烈的欢迎。
  • 关于您的代码的两个提示:a) 请在没有语法错误的情况下共享代码 - 当前代码格式不正确,因为它不会做任何事情。真的,什么都没有,它不会编译。 b) 检查mysql_error 是否提供错误消息。不要依赖 phpMyAdmin 告诉您的任何信息 - 检查代码中的错误。
  • 这能回答你的问题吗? Why shouldn't I use mysql_* functions in PHP?

标签: php mysql mysql-num-rows


【解决方案1】:

不要使用 mysql,使用 mysqli 函数。 如果我是对的,你不能再使用 php7 中的 mysql 函数了

$db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$sql = "Here your sql query";
$query_result = mysqli_query($db, $sql);
$number = mysqli_num_rows($query_result);
echo $number;

我没有测试,但我认为这应该可行。 如果还是不行,试试看有没有错误。

die(mysqli_error($db));

【讨论】:

  • 如果mysql*不可用,你不觉得结果会完全不同吗?
  • 感谢您的回答。不,这不是问题。我有很多工作正常的mysql实例。 (我们还没有更新网站)。
  • 如果您像这样编写查询“select * from mon_content_lid where mon_date_last != '0000-00-00' group by lid order by lid, mon_date_last desc”会怎么样?
【解决方案2】:

如果我看对了(没有尝试过),您执行 SELECT 并将结果放在虚拟列 x 中,所以在我看来,x 应该是唯一交付的列。这个你按“盖子”分组。

select * from (...) as x group by `lid`

所以'lid' 是,如果它被引用,是一个文本,而不是一个列名。尝试查询 qithout the "group" 并转储光标,也许您会看到一些结果。

【讨论】:

  • 谢谢 - 我没有意识到我正在创建一个游标:我只是从其他地方复制了一个选择中的选择,因为我想要的结果与示例类似。我会调查游标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
相关资源
最近更新 更多