2012-07-05 88 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));