我有三个MySQL表,我需要查询所有的行。从每个表中获取所有行后,我需要创建一个多维数组,其中该数组的每个索引仅包含每个表的值。我现在拥有的作品。但是,有些事情告诉我必须有更好的方法来完成这一点。排序PHP数组
$tables = array('table_one', 'table_two', 'table_three');
$final = array();
foreach($tables as $table) {
$sql = "SELECT * FROM ".$table."";
$query = mysqli_query($con, $sql)or die(mysqli_error($con));
$num = mysqli_num_rows($query);
$i = 0;
while($row = mysql_fetch_array($query)) {
$id[$i] = $row['user_id'];
$i++;
}
for($i=0;$i<$num;$i++) {
if(!is_array($final[$i])) {
$final[$i] = array($id[$i]);
} else {
array_push($final[$i], $id[$i]);
}
}
}
最终的结果是什么,看起来像这样
$final = array(array('table_one_row_one_val', 'table_two_row_one_val', 'table_three_row_one_val'),
array('table_one_row_two_val', 'table_two_row_two_val', 'table_three_row_two_val'),
array('table_one_row_three_val', 'table_two_row_three_val', 'table_three_row_three_val')
);
我得到的肠道砍伐,这可以更有效地完成,但我不知道怎么样。
感谢,
兰斯
使用MySQL JOIN而不是三次选择单个表。 http://dev.mysql.com/doc/refman/5.1/en/join.html – 2014-08-30 23:24:11
是的,但表格中各行的值之间没有任何共性 – Lance 2014-08-30 23:32:38
如果没有任何共性,为什么你拿三张桌子吗?这绝对没有逻辑。 – 2014-08-30 23:36:37