2012-04-29 74 views
7

也許這是完全錯誤的事情,但是......查詢不同的數據庫

我需要做這樣的查詢:

SELECT * FROM DATABASE1,DATABASE2 WHERE DATABASE1.users.name = DATABASE2.users.name

如果我這樣做與phpmyadmin它的作品,但在PHP頁面塊。

我連接到MySQL我使用的方式,

$結果=新的mysqli(服務器,用戶通過數據庫)

我明白爲什麼它不工作,我只連接到一個數據庫,但phpmyadmin如何做呢? 我該怎麼辦?

我已經看過其他帖子,但我想跨2個數據庫的信息,我還沒有找到類似的東西。

[編輯] 我的代碼的一個實際例子是:

if($type == "past"){// Hago una query u otro dependiendo de si quiero pasados o futuros 
      $query = "SELECT DISTINCT E.* FROM quehaceshoy_testing.Events E, quehaceshoy_testing.Tickets TK, quehaceshoy_testing.TypeTickets TT, quehaceshoy_testing.Tickets_Reservados2 TR, AirTicket.TICKET T WHERE ((T.Email='$this->email' AND T.idCompra = TR.idCompra AND TR.idTypeTicket_TypeTickets = TT.idTypeTicket AND E.IDEvent = TT.idEvent_Events)OR (E.email = '$this->email')) AND E.dateFinish < '".$fecha."' ORDER BY E.dateFinish DESC"; 
     } 
     else{ 
      $query = "SELECT DISTINCT E.* FROM quehaceshoy_testing.Events E, quehaceshoy_testing.Tickets TK, quehaceshoy_testing.TypeTickets TT, quehaceshoy_testing.Tickets_Reservados2 TR, AirTicket.TICKET T WHERE ((T.Email='$this->email' AND T.idCompra = TR.idCompra AND TR.idTypeTicket_TypeTickets = TT.idTypeTicket AND E.IDEvent = TT.idEvent_Events)OR (E.email = '$this->email')) AND E.dateFinish >= '".$fecha."' ORDER BY E.dateFinish DESC"; 
     } 
     //echo $query; 
     //$result = $this->makeQuery($query, 'RESULT'); 
     if($conn = db_connect()){ 

        $result = $conn->query($query); 
        if(!$result){ 
         //echo '<p>Unable to get list from database.</p>'; 
         //echo $conn->error; 
         return false; 
        } 

     } 

和db_connect就是:

function db_connect() 
{ 
    $result = new mysqli('localhost', $user, $pass, 'quehaceshoy_testing'); 
    $result->set_charset("utf8"); 

    if (!$result) 
     return false; 
    return $result; 
} 

這個查詢使頁面 「裝入」 indefinetly。

謝謝。

+0

您需要更改您的問題,使其易於理解 –

+0

您是指不同的數據庫還是不同的表格? –

+2

我認爲問題很明顯,他想從更多的表中獲取值,這些表位於不同的數據庫中。示例查詢適用於phpmyadmin,但不適用於mysqli php代碼。 – Kyborek

回答

2

我試寫了下面的腳本,它似乎沒有失敗是工作的罰款....

<?php 
      $con = mysql_connect("localhost","root",""); 
      mysql_select_db("test"); 

      $con1 = mysql_connect("localhost","root",""); 
      mysql_select_db("test1"); 

      $query = "SELECT * FROM test1.`manager` INNER JOIN test.employee 
        ON test1.`manager`.id= test.employee.mgr"; 
      $result = mysql_query($query); 
      while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
      printf("ID: %s Name: %s", $row[0], $row[1]); 
      } 
     ?> 

可能是你需要在這裏發表您的代碼。這是你的數據集很大嗎?請張貼您的代碼,以便我們檢查和指導。