嘿,我有一个数组,我需要分隔每个值,所以它会是这样的
$arry = array(a,b,c,d,e,f)
$point1 = (SELECT distance FROM Table WHERE Origin = a AND Destination = b);
$point2 = (SELECT distance FROM Table WHERE Origin = b AND Destination = c);
$point3 = (SELECT distance FROM Table WHERE Origin = c AND Destination = d);
$point4 = (SELECT distance FROM Table WHERE Origin = d AND Destination = e);
$point5 = (SELECT distance FROM Table WHERE Origin = e AND Destination = f);
$point6 = (SELECT distance FROM Table WHERE Origin = f AND Destination = g);
$point7 = (SELECT distance FROM Table WHERE Origin = g AND Destination = f);
$total_trav = $point1+$point2+$point3+$point4+$point5+$point6+$point7
答案 0 :(得分:2)
简单使用list();
list($point1,$point2,$point3,$point4,$point5) = $arry;
然后像你这样做你的查询......
$sql = "SELECT SUM(distance) FROM table WHERE (origin='$point1' AND destination='$point2') OR (origin='$point2' AND destination='$point3') OR (origin='$point3' AND destination='$point4') OR (origin='$point4' AND destination='$point5')
修改强>
根据评论中你需要的内容,我为你制定了一个简单的解决方案......
$arr = array("Vegas","Iowa","Utah","Washington"); //your array
//First part of query string build...
$sql = "SELECT SUM(distance) FROM table WHERE";
//Loop through the array...based on its # of contents
for($i=0;$i<count($arr);$i++){
if(!empty($arr[$i+1])){
$sql.=" (origin='".$arr[$i]."' AND destination='".$arr[$i+1]."') OR";}
}
//Hack off the end bit, which contains an OR appended to the string...
$sql = substr($sql, 0, -3);
//$sql is now ready to be used in a query
mysql_query($sql);
答案 1 :(得分:1)
使用extract
将使用键作为名称将数组中的元素提取到变量。
答案 2 :(得分:1)
这一切都可以在SQL中完成:
SELECT SUM(distance)
FROM table
WHERE (origin='a' AND destination='b')
OR (origin='b' AND destination='c')
OR (origin='c' AND destination='d')
等等。