簡體   English   中英

MySQL的獲取數組查詢?

[英]Mysql fetch array query?

我正在使用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>";
}

有人可以指出我正確的方向嗎?


$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();
}

當然可以。 試試這種方法:

$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的工作方式。

$ search =“ SELECT ab

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

$結果= mysql_query($搜索,$連接); 如果($結果){

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

“ $ search2 =”從DB WHERE中選擇ab x =“。$ row ['a']。”

LIMIT 0,100“;

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

而($ row2 = mysql_fetch_array($ result2)){echo $ row2 [“ a”]。“”。$ row2 [“ b”]。“
“;}} else {echo”

主題搜索失敗。

“;回聲”

“。mysql_error()。”

“;}}} else {echo”

主題搜索失敗。

“;回聲”

“。mysql_error()。”

“;}

我更改了您的代碼... if和else括號以及while都有很多問題...

為什么將數據放在兩個單獨的數據庫中? 您真的是說它們在單獨的數據庫中還是在MySQL的單獨實例中?

一個mysql實例可以提供多個數據庫,您可以編寫查詢以從每個數據庫中提取數據,例如

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

如果您要整理來自單獨MySQL實例的數據,那么正如其他人建議的那樣,您將需要創建2個db連接,針對一個連接觸發查詢,然后針對第二個連接動態生成並執行查詢(請注意,您將獲得顯着的性能對迭代查詢使用准備好的語句會帶來很多好處)。

另一種方法是使用聯合存儲引擎在MySQL的第一個實例中直接公開第二個實例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM