mysql查询中的二维数组

时间:2014-04-16 14:53:05

标签: php mysql sql

您好我想创建mysql查询:

"SELECT *, route.id as id_id, profile.id as profile_id 
FROM route_date LEFT JOIN route ON route_date.id_route = route.id 
LEFT JOIN profile ON route.user_id = profile.id  
WHERE route_date.date_time <= '$hike_date_to_input_updated' 
AND (route_date.date_time + INTERVAL (ROUND('$start[id_id][distance_route]'/route.route_distance*route.route_time)) SECOND) >='$hike_date_from_input_updated' AND route.free >= $hike_free 
AND route.status = '2' 
AND route.type ='1' AND route.id IN  (".implode(",",$searching_route_ids).")
ORDER BY route_date.date_time ASC"

问题在于

route_date.date_time + INTERVAL (ROUND('$start[id_id][distance_route]'/route.route_distance*route.route_time)) SECOND) >='$hike_date_from_input_updated'. 

如果在此选择期间生成的当前route.id(id_id)中的所有id的匹配条件,我需要计算+秒,并且我已将它们存储在先前计算的2d数组$ start [id_id] [distance_route]中。如何实现呢?

1 个答案:

答案 0 :(得分:0)

无论您的查询是什么都无关紧要,您可以使用完全相同的基本方式从任何选择查询中检索数据。字段名称,表名等可能会改变,但您仍然使用相同的机制。基本上归结为

$result = mysql_query($sql) or die(mysql_error());

$data = array();

while($row = mysql_fetch_assoc($result)) {
    $data[] = $row;
}

如果您需要根据检索到的数据构建多维数组,那么

    $data[$row['field1']][$row['field2']][...etc...] = $row;
          ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^
           array key #1    array key #2    array keys 3..n

代替。基本上使用检索到的行中的各个值作为新数组中的键。