Mysql获取数组查询?

时间:2011-02-21 12:38:06

标签: php mysql arrays

我使用php查询使用mysql_fetch_array从mysql数据库中检索信息并使用返回的结果查询另一个数据库?我很新手。这可能吗?

$search =
"SELECT `a`,`b`

FROM 'DB'
WHERE `x` LIKE '$var'
LIMIT 0 , 30";

$result = mysql_query($search, $connection);
if($result){

while ($row = mysql_fetch_array($result)){
echo $row["a"]." ".$row["b"]."<br />";
                        }
} else {
echo "<p> Subject search failed. <p>";
echo "<p>" . mysql_error() . "</p>";
    }

<!-- SECOND QUERY -->   
$search2 = 
"SELECT `a`,`b`
FROM `DB`
WHERE `x` = **$row['a']**  *trying to grab the result from the first query and use as search query in second?*

LIMIT 0 , 100";

$result2 = mysql_query($search2, $connection);
if($result2){

while ($row2 = mysql_fetch_array($result2)){
echo $row2["a"]." ".$row2["b"]."<br />";
                        }
} else {
echo "<p> Subject search failed. <p>";
echo "<p>" . mysql_error() . "</p>";
}

有人能指出我正确的方向吗?

4 个答案:

答案 0 :(得分:1)

$search = "SELECT a,b FROM DB WHERE x LIKE '$var' LIMIT 0 , 30";
$result = mysql_query($search, $connection);
if($result){
    while ($row = mysql_fetch_array($result)){
        echo $row["a"]." ".$row["b"]." ";
        $search2 = "SELECT a,b FROM DB WHERE x = '".$row['a']."' LIMIT 0 , 100";
        $result2 = mysql_query($search2, $connection);
        if($result2){
            while ($row2 = mysql_fetch_array($result2)) {
                echo $row2["a"]." ".$row2["b"]." ";
            }
        } else {
            echo "Subject search failed.";
            echo mysql_error();
        }
    }
} else {
    echo "Subject search failed. ";
    echo mysql_error();
}

答案 1 :(得分:0)

当然可以这样做。试试这种方法:

$firstresult = null;
while ($row = mysql .... etc()) //first query
    $firstresult = $row['a'];

if ($firstresult != null) {
     //do second query
     $result2 = mysql_query("SELECT * FROM table WHERE id='".$firstresult."';");
     //process query
     //etc..
}

如果此解决方案正确,请不要忘记将解决方案标记为已接受。这就是StackOverflow的工作原理。

答案 2 :(得分:0)

$ search = “SELECT ab

FROM DB WHERE x LIKE'$ var' 限制0,30“;

$ result = mysql_query($ search,$ connection); 如果($结果){

while($ row = mysql_fetch_array($ result)){ echo $ row [“a”]。“”。$ row [“b”]。“
”;

$ search2 = “SELECT ab 来自DB WHERE x =“。$ row ['a']。”

LIMIT 0,100“;

$ result2 = mysql_query($ search2,$ connection); 如果($ RESULT2){

while($ row2 = mysql_fetch_array($ result2)){ echo $ row2 [“a”]。“”。$ row2 [“b”]。“
”; }}  其他{ echo“

主题搜索失败。

”; echo“

”。 mysql_error()。 “

”; }  } } else { echo“

主题搜索失败。

”; echo“

”。 mysql_error()。 “

”; }

我改变了你的代码...... if和else括号以及while ...

有很多问题

答案 3 :(得分:0)

为什么两个单独的数据库上的数据?你真的是说他们在单独的数据库上 - 或者他们是在MySQL的单独实例上吗?

单个mysql实例可以提供多个数据库,您可以编写从每个数据库中提取数据的查询,例如

SELECT activity.*
FROM mysql.user user, audit.activity activity
WHERE activity.user=user.user

如果你想整理来自单独的MySQL实例的数据,那么正如其他人所建议的那样,你将需要创建2个数据库连接,针对一个连接触发查询,然后针对第二个连接动态构建和执行查询(注意你将会通过对迭代查询使用a prepared statement来获得显着的性能优势。

另一种方法是使用federated storage engine

直接在MySQL的第一个实例中公开第二个实例