获取 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 行并为每行定义变量?的主要内容,如果未能解决你的问题,请参考以下文章