Таблица базы данных, попробуйте помочь мне
CREATE TABLE IF NOT EXISTS `tickets` (
`ticketid` int(10) NOT NULL AUTO_INCREMENT,
`datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`game` enum('1','2','3') NOT NULL DEFAULT '1',
`gameid` int(100) NOT NULL,
`userid` int(11) NOT NULL DEFAULT '0',
`sum` int(11) NOT NULL,
`username` varchar(50) NOT NULL,
`numbers` varchar(27) NOT NULL,
`count` int(2) NOT NULL,
`how_much_win` int(20) NOT NULL,
`win` enum('yes','no') NOT NULL DEFAULT 'no',
`checked` enum('yes','no') NOT NULL DEFAULT 'no',
PRIMARY KEY (`ticketid`)
) ENGINE=MyISAM;
INSERT INTO `tickets` (`ticketid`, `datetime`, `game`, `gameid`, `userid`, `sum`, `username`, `numbers`, `count`, `how_much_win`, `win`, `checked`) VALUES
(1, '2014-10-22 16:33:18', '1', 6592, 40294, 20, 'sergey', '13|19|31|49|50|61|65', 0, 0, 'no', 'no'),
(2, '2014-10-22 16:33:20', '1', 6592, 40294, 20, 'sergey', '8|10|36|38|44|50|68', 0, 0, 'no', 'no'),
(3, '2014-10-22 16:33:22', '1', 6592, 40294, 20, 'sergey', '2|14|31|42|48|56|64', 0, 0, 'no', 'no'),
(4, '2014-10-22 16:33:23', '1', 6592, 40294, 20, 'sergey', '8|11|26|34|37|42|44', 0, 0, 'no', 'no'),
(5, '2014-10-22 16:33:24', '1', 6592, 40294, 20, 'sergey', '5|27|28|55|60|62|67', 0, 0, 'no', 'no'),
(6, '2014-10-22 16:33:27', '2', 6592, 40294, 160, 'sergey', '1|15|19|25|38|47|62|64', 0, 0, 'no', 'no'),
(7, '2014-10-22 16:33:28', '2', 6592, 40294, 160, 'sergey', '2|6|40|45|54|56|69|70', 0, 0, 'no', 'no'),
(8, '2014-10-22 16:33:30', '3', 6592, 40294, 720, 'sergey', '1|7|23|47|54|55|57|59|68', 0, 0, 'no', 'no'),
(9, '2014-10-22 16:33:36', '3', 6592, 40294, 1080, 'sergey', '3|12|15|26|33|41|43|46|60', 0, 0, 'no', 'no'),
(10, '2014-10-22 16:33:45', '1', 6592, 40294, 30, 'sergey', '17|26|31|55|57|59|61', 0, 0, 'no', 'no');
А вот страница
<?
$arr = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT numbers FROM tickets WHERE checked = 'no'") or sqlerr(__FILE__, __LINE__);
if (mysqli_num_rows($arr) > 0){
while ($res = mysqli_fetch_assoc($arr)) {
foreach (explode("|", $res['numbers']) as $value) {
$numbers[$value]++;
}
}
$numbers_f = array();
foreach ($numbers as $num => $value){
$numbers_f[$num] += $value;
}
foreach (range(1, 70) as $num){
echo 'Number '.$num.' = '.(isset($numbers_f[$num]) ? $numbers_f[$num] : '0').' times<br />';
}
}
?>
Это покажет результаты на странице, как
Number 1 = 2 times
Number 2 = 2 times
Number 3 = 1 times
Number 4 = 0 times
Number 5 = 1 times
etc...
Мне нужно из всего списка (70 числовых строк) создать какую-то функцию для проверять а также получить 17 низких результатов, (низкие результаты = количество раз. В данном примере низкие результаты будут числами с нулями. Но если мне добавят больше билетов, младшие цифры могут быть равны нулю с 1 или 1 с 2 и т. Д. И если вы можете помочь мне с моим вопросом. Мне нужна дополнительная помощь, делайте (Самые популярные номера) с высокими числами хх.
Спасибо за помощь! (и извините за мой плохой английский)
Вы должны сбросить все 70 записей в массиве с номером в качестве ключа и числом раз в качестве значения.
Затем вы сортируете это с помощью asort()
и вы берете верхний xx или нижний xx из вашего массива, используя, например, array_slice()
.
Других решений пока нет …