-5

嘿,我有一个数组,我需要分隔每个值,所以它会是这样的

$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
4

3 回答 3

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); 
于 2013-06-26T02:41:04.160 回答
1

利用extract

将使用键作为名称将数组中的元素提取到变量中。

于 2013-06-26T02:40:56.760 回答
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')

等等。

于 2013-06-26T02:42:49.473 回答