7

たぶん、これは完全に間違っていますが、...

次のようなクエリを実行する必要があります。

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

phpmyadmin を使用すると動作しますが、php ではページがブロックされます。

私が使用しているmysqlへの接続方法は、

$result = new mysqli(サーバー、ユーザー、パス、データベース)

うまくいかない理由はわかります。1 つのデータベースにしか接続していませんが、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;
}

このクエリは、ページを無期限に「ロード」します。

ありがとう。

4

1 に答える 1

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]);  
          }
      ?>

ここにコードを投稿する必要があるかもしれません。データセットが大きいということですか?私たちが確認して案内できるように、コードを投稿してください。

于 2012-04-29T16:17:28.790 に答える