2

我正在尝试将数据输出到 xml 文件中,一切正常,除了它只保存最后一条获取的记录。

使用以下查询:

$query = mysql_query("SELECT mileage FROM cars WHERE make ='bmw' ORDER BY date DESC, time DESC LIMIT 3");
while ($row = mysql_fetch_array($query)){
$result = $row['mileage'];
}

我的问题是如何制作,以便将每条记录保存在 3 个单独的变量中,以便我可以将这 3 个变量输出到 xml 文件中。我还尝试仅获取按最后日期和最后时间排序的最后 3 行,因此不确定查询是否正确。

谢谢你。

4

5 回答 5

1

首先:不要使用 mysql_* 函数!它们已过时,您应该改用PDO

其次:最简单的做法是构造一个包含结果的数组。

$result = array();
$query = mysql_query("SELECT mileage FROM cars WHERE make ='bmw' ORDER BY date DESC, time DESC LIMIT 3");
while ($row = mysql_fetch_array($query)){
    $result[] = $row['mileage'];
}

您的查询结果现在包含在$result[0]$result[1]$result[2]中。(如果您使用 PDO,代码看起来并没有太大不同。)

于 2012-04-29T18:00:46.730 回答
1
$result=array();
$query = mysql_query("SELECT mileage FROM cars WHERE make ='bmw' ORDER BY date DESC, time DESC LIMIT 3");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$result[]  = $row['mileage'];

}
于 2012-04-29T18:06:40.953 回答
0

尝试将输出保存为数组。

$array[]=$value;

会将 $value 推入 $array 数组中。

于 2012-04-29T17:55:22.863 回答
0

您可以使用以下内容;

$query = mysql_query("SELECT mileage FROM cars WHERE make ='bmw' ORDER BY date DESC, time DESC LIMIT 3");
while ($row = mysql_fetch_array($query)){
$result[] = $row['mileage'];
}

您可以foreach$result 并构建您的 xml。

于 2012-04-29T17:56:59.590 回答
-1

给自己一个函数

function dbGetCol($sql){
  $ret = array();
  $res = mysql_query($sql) or trigger_error(mysql_error()." ".$sql);
  if ($res) {
    while($row = mysql_fetch_row($res)){
      $ret[] = $row[0];
    }
  }
  return $ret;
}

然后就调用它

$data = dbGetCol("SELECT mileage FROM cars WHERE make ='bmw' ORDER BY date DESC, time DESC LIMIT 3");
于 2012-04-29T17:59:47.137 回答