2010-06-28 5 views
1

다음은 실행중인 쿼리입니다. 그러나 어떤 이유로 $ MachineQuery는 결과를 얻지 못합니다. 나는 그것이 $ q1을 쿼리에서 사용하는 것과 관련이 있다고 생각하지만 왜 그런지는 모른다. 어떤 아이디어?다른 쿼리에서 mysql_query 결과 사용

$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) 

답변

2

문제는 $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) 

그런 식으로, 당신은 쿼리를 다시 실행할 필요가 없습니다.

+0

그 결과, 결과 열을 배열로 변환해야했습니다. 빠른 답변을 보내 주셔서 감사합니다. – MultiDim

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 (SELECT DISTINCT SymptomID FROM Tree WHERE SymptomID NOT IN (SELECT DISTINCT SymptomID FROM Tree WHERE LBNodeID = 0 OR RBNodeID = 0)) 
+0

문제는 여러 쿼리에서 결과를 사용하는 것입니다. 그래서 나는 같은 정보를 여러 번 가져올 필요가 없다. – MultiDim