2012-04-29 73 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]); 
      } 
     ?> 

可能是你需要在这里发表您的代码。这是你的数据集很大吗?请张贴您的代码,以便我们检查和指导。