mysql_fetch_assoc не работает таким образом, вам нужно вызывать его несколько раз, чтобы получить все строки. Нравится:
$query = "SELECT * FROM table";
$result = mysql_query($query, $db);
$all = mysql_fetch_assoc($result);
echo mysql_num_rows($result) . ":" . count($all);
озвращает
2063:7
Я раньше не использовал count, поэтому я не уверен на 100%, что он не считает столбцы таблицы. Уже поздно, и я схожу с ума.
Вот еще один пример того, что происходит:
$result = mysql_query($query, $db);
echo "Rows: " . mysql_num_rows($result) . " <BR />";
$player_array = mysql_fetch_assoc($result);
echo "<pre>";
print_r($player_array);
echo "</pre>";
Какие выводы:
Rows: 9
Array
(
[playerID] => 10000030
)
TL; DR: я отправляю запросы, которые возвращают несколько строк, но fetch_array дает мне лишь небольшую часть этих строк в результирующем массиве.