在另一个查询中使用 mysql_query 结果

发布于 2024-09-06 23:21:47 字数 624 浏览 2 评论 0原文

以下是我正在执行的查询。但由于某种原因 $MachineQuery 没有得到结果。我认为这与在查询中使用 $q1 有关,但我不知道为什么。 有什么想法吗?

$q1 =mysql_query("SELECT DISTINCT SymptomID
 FROM Tree
 WHERE SymptomID NOT IN (SELECT DISTINCT SymptomID
                         FROM  Tree
                         WHERE LBNodeID = 0 OR RBNodeID = 0)")

$MachineQuery = mysql_query("SELECT DISTINCT M.MachineID, M.MachineName
                                 FROM Machines M, Systems Sys, Symptoms Sym
                                 WHERE M.MachineID = Sys.MachineID AND Sys.SystemID  
                                 =Sym.SystemID AND Sym.SymptomID IN ($q1)

Below are the queries I am executing. But for some reason $MachineQuery is not getting a result. I assume it has something to do with using $q1 in the query but I don't know why.
Any Ideas?

$q1 =mysql_query("SELECT DISTINCT SymptomID
 FROM Tree
 WHERE SymptomID NOT IN (SELECT DISTINCT SymptomID
                         FROM  Tree
                         WHERE LBNodeID = 0 OR RBNodeID = 0)")

$MachineQuery = mysql_query("SELECT DISTINCT M.MachineID, M.MachineName
                                 FROM Machines M, Systems Sys, Symptoms Sym
                                 WHERE M.MachineID = Sys.MachineID AND Sys.SystemID  
                                 =Sym.SystemID AND Sym.SymptomID IN ($q1)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

仅一夜美梦 2024-09-13 23:21:47

问题是 $q1 是 PHP 资源。它不是查询、数组、字符串或其他任何东西。因此,您需要将数据“转换”为您更可用的类型。

这是我的解决方案:

$q1 =mysql_query("SELECT DISTINCT SymptomID
    FROM Tree
    WHERE SymptomID NOT IN (SELECT DISTINCT SymptomID
                         FROM  Tree
                         WHERE LBNodeID = 0 OR RBNodeID = 0)");
$list = array();
while ($row = mysql_fetch_array($q1)) {
    $list[] = $row[0];
}
$fullList = join(',', $list);

$MachineQuery = mysql_query("SELECT DISTINCT M.MachineID, M.MachineName
                                 FROM Machines M, Systems Sys, Symptoms Sym
                                 WHERE M.MachineID = Sys.MachineID AND Sys.SystemID  
                                 =Sym.SystemID AND Sym.SymptomID IN ($fullList)

这样您就可以重用结果,而不必再次运行查询。

The problem is that $q1 is a PHP resource. It is not a query, an array, a string, or anything else. As such, you need to "convert" the data to a type that is more usable by you.

Here is my solution:

$q1 =mysql_query("SELECT DISTINCT SymptomID
    FROM Tree
    WHERE SymptomID NOT IN (SELECT DISTINCT SymptomID
                         FROM  Tree
                         WHERE LBNodeID = 0 OR RBNodeID = 0)");
$list = array();
while ($row = mysql_fetch_array($q1)) {
    $list[] = $row[0];
}
$fullList = join(',', $list);

$MachineQuery = mysql_query("SELECT DISTINCT M.MachineID, M.MachineName
                                 FROM Machines M, Systems Sys, Symptoms Sym
                                 WHERE M.MachineID = Sys.MachineID AND Sys.SystemID  
                                 =Sym.SystemID AND Sym.SymptomID IN ($fullList)

That way you can reuse the results, and you don't have to run the query again.

2024-09-13 23:21:47

$q1 是 MySQL 资源变量,而不是字符串或数组。请参阅文档,了解如何从该资源获取您想要的特定字段:

https://www.php .net/mysql_query

https://www.mysql.net/mysql_query php.net/manual/en/function.mysql-fetch-array.php

$q1 is a MySQL resource variable, not a string or array. See the documentation for how to get the particular field(s) you want from that resource:

https://www.php.net/mysql_query

https://www.php.net/manual/en/function.mysql-fetch-array.php

本宫微胖 2024-09-13 23:21:47

我会尝试

$MachineQuery = mysql_query("SELECT DISTINCT M.MachineID, M.MachineName FROM Machines M, Systems Sys, Symptoms Sym WHERE M.MachineID = Sys.MachineID AND Sys.SystemID
=Sym.SystemID AND Sym.SymptomID IN (SELECT DISTINCT SymptomID FROM Tree WHERE SymptomID NOT IN (SELECT DISTINCT SymptomID FROM Tree WHERE LBNodeID = 0 OR RBNodeID = 0))

i'd try

$MachineQuery = mysql_query("SELECT DISTINCT M.MachineID, M.MachineName FROM Machines M, Systems Sys, Symptoms Sym WHERE M.MachineID = Sys.MachineID AND Sys.SystemID
=Sym.SystemID AND Sym.SymptomID IN (SELECT DISTINCT SymptomID FROM Tree WHERE SymptomID NOT IN (SELECT DISTINCT SymptomID FROM Tree WHERE LBNodeID = 0 OR RBNodeID = 0))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文