2013-08-20 64 views
-1

我有兩個數據庫表 - 一個用於導師,另一個用於導師教授的主題。兩個SQL查詢到同一個數組中

兩者通過tutorID連接。現在我試圖從兩個數據中獲取數據。有沒有辦法做到這一點?我嘗試按順序執行:

$query = "SELECT id, name, avatar, price, (3959 * acos(cos(radians('$center_lat')) * cos(radians(lat)) * cos(radians(lng) - radians('$center_lng')) + sin(radians('$center_lat')) * sin(radians(lat)))) AS distance 
    FROM users 
    having distance < '$radius' order by RAND() LIMIT 0, 20"; 

$result = mysqli_query($db_conx, $query); 

if (!$result) { 
echo "Query problem"; 

} 
$rows = array(); 

//set xml header 
/* header("Content-type: application/json"); */ 
// Iterate through the rows, adding XML nodes for each 
while ($r = @mysqli_fetch_assoc($result)){ 
$rows[] = $r; 

} 

$tutorID = $rows[0]['id']; 

$query = "SELECT level, subject, topic 
    FROM TUTORLINK 
    where tutorID='$tutorID' 
    order by level"; 

$result = mysqli_query($db_conx, $query); 

while ($r = @mysqli_fetch_assoc($result)){ 
$rows[] = $r; 
} 

var_dump($rows); 

但行只包含第一個查詢的結果 - 任何人都可以幫忙嗎?

+2

第二個查詢可能是空的。但是,我猜你實際上是在尋找一個JOIN? – hakre

+0

嘗試實際嵌套你的循環。如果您明確地查詢'$ rows [0] ['id']'',那麼您只會得到第一行的結果並不奇怪。 –

+1

閱讀[MySQL加入](http://dev.mysql.com/doc/refman/5.0/en/join.html) – Itay

回答

0

我想你只需要使用「聯盟」:

SELECT * FROM student_table UNION SELECT * FROM tutor_table 
+0

感謝邁克 - 問題是,映射是由$ rows [0] ['id']的值完成的,所以至少我會需要「SELECT * FROM users UNION SELECT * FROM tutorlink where tutor_table。 tutorID = '$行[0] [' ID ']」' – Mobaz