获取 MySQL 的最后 6 行并为每行定义变量?

Posted

技术标签:

【中文标题】获取 MySQL 的最后 6 行并为每行定义变量?【英文标题】:Get the last 6 rows of MySQL and define the variables for each? 【发布时间】:2011-02-07 04:26:28 【问题描述】:

因此,我将每 4 小时运行一次此脚本以填充我的数据库。

我的问题是是否可以获取最后 6 行并为每行定义变量?

所以我可以使用它们来创建最近 24 小时的图表。

喜欢:

$value1,$time1,$ap1

$value2,$time2,$ap2

$value3,$time3,$ap3

$value4,$time4,$ap4

$value5,$time5,$ap5

$value6,$time6,$ap6

<?php
$c = curl_init();
curl_setopt_array($c, array(
    CURLOPT_URL => 'http://www.bungie.net/stats/reach/online.aspx',
    CURLOPT_RETURNTRANSFER => true,
    ));
$r = curl_exec($c);
curl_close($c);

preg_match_all('|([\w\s]+)</a> </h4>\s*([0-9,]+) Players|s', $r, $m);
$teams = array_combine($m[1], $m[2]);
foreach ($m[2] as &$v) $v = str_replace(',','',$v);
//echo '<pre>'.print_r($teams,1).'</pre>';

//array with values
$a = $m[2];
//define idividual variables
$noble_map_pack = $a[0];
$rumble_pit = $a[1];
$living_dead = $a[2];
$team_slayer = $a[3];
$mlg = $a[4];
$team_swat = $a[5];
$team_snipers = $a[6];
$team_objective = $a[7];
$multi_team = $a[8];
$big_team_battle = $a[9];
$invasion = $a[10];
$firefight = $a[11];
$score_attack = $a[12];
$coop_campaign = $a[13];
$team_arena = $a[14];
$doubles_arena = $a[15];
$ffa_arena = $a[16];

//define time variables
date_default_timezone_set('America/New_York');
$time = date("g:i");
$ap = date("A");
$date = date("YmdHis");

//include_once "mysql_con.php";
$d_host = "localhost";
$d_user = "";
$d_pass = "";
$d_name = "database";

@mysql_connect("$d_host","$d_user","$d_pass") or die ("Could not connect!");
@mysql_select_db("$d_name") or die ("No database!");

mysql_query("INSERT INTO `noblemappack`
(`value`,`time`,`ap`,`date`)
VALUES ('".$noble_map_pack."','".$time."','".$ap."','".$date."')")

?>

【问题讨论】:

【参考方案1】:

查询(假设time 是一个可以排序的datetime 列):

SELECT * FROM `noblemappack` ORDER BY `time` DESC LIMIT 6

如果您没有可以排序的日期时间字段,请添加一个。否则,“最后 6 个”相当模糊。 如果你只是把结果放在一个数组中,你就准备好了。您不应该将值保存在单个变量中,将它们作为数组中的数据集保存会更容易使用。

array(
    array('value' => 'foo', 'time' => '13:45', 'date' => '2011-02-03'),
    array('value' => 'bar', 'time' => '22:41', 'date' => '2011-02-04'),
    ...
);

其他变量也一样:

list($data['noble_map_pack'], $data['rumble_pit'], ...) = $a;

【讨论】:

以上是关于获取 MySQL 的最后 6 行并为每行定义变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何插入 365 行并为每一行增加一天的日期

mysql 获取数组

awk 如何获取每行最后一个字符

11)MySQL编程基础

监视新的附加行并创建一个 ;每行的分隔文件

在文件中查找重复行并计算每行重复了多少次?