2012-04-29 15 views
7

Belki bunu yapmak için tamamen yanlış, ama ... Böyle bir sorgu yapmak gerekirsorgulama farklı veritabanları

: Database1 GELEN

SEÇ *, database2 NEREDE DATABASE1.users.name = DATABASE2.users.name

Bunu phpmyadmin ile yaparsam çalışır, ancak php'de sayfa blokları olur.

ben kullanıyorum mysql bağlanmak yolu,

$ = new mysqli neden çalışmıyor neden görebilirsiniz

(sunucu, kullanıcı, pas veritabanı) Ben sadece bir veritabanına bağlanıyorum, ama phpmyadmin bunu nasıl yapıyor? Nasıl yapabilirim?

Başka gönderi görmekteyim ama 2 veri tabanındaki bilgileri ÇÖZMEK istiyorum ve böyle bir şey bulamadım.

[DÜZENLE] benim kod Gerçek bir örnek olacaktır:

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; 
        } 

     } 

ve db_connect adildir:

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

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

Bu sorgu indefinetly sayfa için "yük" yapar.

Teşekkürler.

+0

Sorunuzu tekrar hatırlatmanız gerekir, anlamak için –

+0

Farklı veritabanlarını mı yoksa farklı tabloları mı? –

+2

Sorunun açık olduğunu düşünüyorum, farklı veritabanlarında bulunan daha fazla tablodan değer almak istiyor. Örnek sorgu phpmyadmin içinde çalışır, ancak mysqli php kodunda çalışır. – Kyborek

cevap

2

aşağıda bir senaryo test yazdım ve buraya kodunuzu yayınlamanız gerekir olabilir

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

.... başarısız olmadan da iyi çalışıyor gibi görünüyor. Veri kümeniz büyük mü? Lütfen kontrol edip rehberlik yapabilmemiz için kodunuzu gönderin.

İlgili konular