使用while循环将mysql行转换为变量

时间:2012-04-29 17:51:43

标签: php mysql

我正在尝试将数据输出到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行,所以不确定查询是否正确。

谢谢。

5 个答案:

答案 0 :(得分: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,代码看起来并没有太大差异。)

答案 1 :(得分: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'];

}

答案 2 :(得分:0)

尝试将输出保存为数组。

$array[]=$value;

将推送$ array数组中的$值。

答案 3 :(得分: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 $结果并构建您的xml。

答案 4 :(得分:-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");