Здравствуйте!
Я, как сыщик из "Колобков": "ничего не понимаю" ))
Есть простенькая база данных, в которой 5 таблиц. Одна из них содержит 6 строк (ID и Name). Для дальнейшей работы кода мне нужно загрузить эту таблицу в массив. Делаю просто:
<?php
global $body_part;
$host = 'localhost'; // адрес сервера
$database = 'gs_new'; // имя базы данных
$user = 'root'; // имя пользователя
$password = ''; // пароль
$link = mysqli_connect($host, $user, $password, $database); // соединяемся с базой данных
if (mysqli_connect_errno()) { // проверка соединения
printf("Не удалось подключиться: %s\n", mysqli_connect_error());
exit();
}
if (!$link->set_charset("utf8")) { // изменение набора символов на utf8
printf("Ошибка при загрузке набора символов utf8: %s\n", $link->error);
exit();
}
$body_part_query ="SELECT * FROM body_part"; // строка запроса
$body_result = mysqli_query($link, $body_part_query);
while ($body_part = mysqli_fetch_array($body_result, MYSQLI_BOTH)) {
echo "body_part[" . $body_part['Part_ID'] . "] = " . $body_part['Name'] . ", ";
}
echo "в массиве body_part " . count($body_part) . " элементов";
$link->close(); // закрываем БД
?>
Как видите, в коде есть последовательный вывод элементов массива внутри while. Все элементы массива выводятся абсолютно корректно. НО! Результатом функции count является НОЛЬ!
Я, видимо, сильно туплю, но не понимаю почему это так. Из-за этого, например, функция foreach выдает ошибку.