2012-07-05 82 views
1

我使用兩個查詢分別從各自的表中選擇的價值觀,我想將它們放到一個數組。例如,使用下面的代碼,我想有在MySQL查詢兩個表來填充一個PHP數組

id, last, first, course1, course2, course3 

...從

$startsem1 and $endsem1 

...在一個陣列中。

$startsem1 = $startsem."reg"; 
$endsem1 = $endsem."reg"; 
$query = "SELECT id,last,first,course1,course2,course3 FROM $startsem1 
    UNION SELECT id,last,first,course1,course2,course3 FROM $endsem1"; 
$result = mysql_query($query) or die(mysql_error()); 

while ($row = mysql_fetch_array($result)) 
    { 
     print_r($row); echo "<br><br>"; 
    } 
+1

如果您使用UNION或JOIN會更好,但請記住,使用UNION的列號必須相同,並且使用JOIN必須具有共同字段才能使它成爲 – jcho360 2012-07-05 19:18:12

+0

您可以使用UNION同時發送兩個查詢;您也可以單獨運行兩個查詢,並將結果推送到同一個數組中。真的,它完全取決於表格的結構以及你想要用什麼。 – andrewsi 2012-07-05 19:21:15

+0

我編輯了上面的代碼。我從$ startsem1中獲得一個數組中的「id,last,first,course1,course2,course3」和另一個數組中的$ endsem1中的「id,last,first,course1,course2,course3」。我怎麼把它們放在一起?有幾個結果,所以我不能將數組推到一起。 – myom 2012-07-05 19:33:20

回答

1

有兩種方法來合併數據集:

  1. SQL UNION查詢
  2. 使用 array_merge()或其他的許多PHP函數
  3. 數組操作

的帖子建議你想同時使用兩者。其實你會選擇一個。

如果使用第二,UNION查詢不,因爲它產生一個結果是有意義的。你需要兩個單獨的查詢,兩個結果,兩個數組。

如果使用第一,你可能仍然有陣列功能(如array_merge())或循環操作來清理或解決數據問題。

0
while ($row = mysql_fetch_array($result)) 
    { 
     $array[] = $row; 
    } 
echo nl2br(print_r($array, TRUE));