У меня есть цикл for, который генерирует 10 результатов:
<?php
include "dbconnect.php";
$table = "SELECT id FROM players ORDER BY RAND()* ( 1 / percentage)";
for ($i = 0; $i < 10; $i++){
$result[0] = mysql_fetch_array(mysql_query($table));
foreach ($result as $winner){
echo $winner[0] . " ";
}
}
?>
Он генерирует результат, например:
10 10 11 9 13 11 10 12 8 12
Мой вопрос: как я могу считать поколение? В приведенном выше примере это будет:
8 = 1, 9 = 1, 10 = 3, 11 = 2, 12 = 2, 13 = 1.
Я в основном хочу подсчитать количество конкретных результатов. Извините, если я не понимаю.
Вам нужно выйти из функций MySQL и проверить PDO или MySQLI как минимум. Но для мяса вопроса:
array_count_values
будет считать значения. Вы можете зацикливать его и эхо или что угодноПример:
$table = "SELECT id FROM players ORDER BY RAND()*(1/percentage) LIMIT 10";
$result = mysql_query($table);
while($row = mysql_fetch_array($result)) {
$winner[] = $row[0];
}
echo implode(' ', $winner);
foreach(array_count_values($winner) as $number => $count) {
$output = "$number = $count";
}
echo implode(', ', $output);
Вы существующий код, чтобы сделать случайный выбор работы будет выглядеть (LIMIT 1
):
$table = "SELECT id FROM players ORDER BY RAND()*(1/percentage) LIMIT 1";
for($i = 0; $i < 10; $i++){
$result = mysql_fetch_array(mysql_query($table));
$winner[] = $row[0];
}
echo implode(' ', $winner);
LIMIT 1
если вы проверите руководство по php: http://php.net/manual/en/function.mysql-query.php
затем попробуйте что-то вроде этого:
while ($row = mysql_fetch_assoc($table)) {
echo $row['column_name'];
echo $row['column_name'];
//.. you get the idea
}
Идентификатор обычно является первым столбцом в таблице базы данных. Вот почему вы просто получаете идентификатор. Вам нужно получить доступ к каждой строке так же, как к массивам доступа.
Я должен указать, что библиотека mysql устарела. Поэтому вы должны использовать вместо этого что-то вроде PDO.