Получить последние 6 строк MySQL и определить переменные для каждого? - PullRequest
0 голосов
/ 07 февраля 2011

Итак, я собираюсь запускать этот скрипт каждые 4 часа для заполнения своей базы данных.

Мой вопрос: можно ли получить последние 6 строк и определить переменные для каждого?

Так что я могу использовать их для создания графика за последние 24 часа ..

как:

$ value1, $ time1, $ ap1

$ значение2, $ time2, $ ар2

$ value3, $ time3, $ АР3

$ value4, $ time4, $ AP4

$ value5, $ time5, $ АП5

$ value6, $ time6, $ AP6

<code><?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).'
'; // массив со значениями $ a = $ m [2]; // определить отдельные переменные $ 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]; // определяем переменные времени date_default_timezone_set ( 'Америка / New_York'); $ time = date ("g: i"); $ ap = дата ("A"); $ date = date ("YmdHis"); // include_once "mysql_con.php"; $ d_host = "localhost"; $ d_user = ""; $ d_pass = ""; $ d_name = "база данных"; @mysql_connect ("$ d_host", "$ d_user", "$ d_pass") или die ("Не удалось подключиться!"); @mysql_select_db ("$ d_name") или die ("Нет базы данных!"); mysql_query ("INSERT INTO" noblemappack " ( `Value`,` time`, `ap`,` date`) ЗНАЧЕНИЯ ('". $ Noble_map_pack."', '". $ Time.",' ". $ Ap." ',' ". $ Date." ') ") ?>

1 Ответ

0 голосов
/ 07 февраля 2011

Запрос (при условии, что 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...