CanVas
@CanVas
Веб-мастер

Почему не выводится ноль из mysql?

В БД есть столбец "level" типа int(5);
Обращаюсь к БД:
$userdata = $mysqli->query("SELECT * FROM menu_links WHERE menu = '".$alias."' ORDER BY ord");


далее действую таким способом:
while ($link = $userdata->fetch_assoc()) {
print_r($link['level']);
...
}

если в столбце level в БД стоит 0 - то выводит '' - т.е. ничего. если 1 - то 1.
все остальные поля БД выводит на ура.

пока поставил костыль типа
if ($link['level']=='')
Но мне интересно 1. Почему так происходит? 2. Как это можно исправить? что бы получать всё же число?

И ещё вопрос не в тему - если в php кодировка utf-8, а в БД cp1251 - чем это черевато?
  • Вопрос задан
  • 2460 просмотров
Решения вопроса 1
thewind
@thewind
php программист, front / backend developer
Надо смотреть на тип поля, на default значение. Наверняка оно null. Поставьте в поле реальный 0 через update и сделайте вывод - посмотрите, что будет.

Либо откройте phpmyadmin чтобы посмотреть значение реальное.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Shultc
@Shultc
RnD Developer
Возможно система интерпретирует 0 как null.
Ответ написан
He11ion
@He11ion
PHP-monkey
print_r( (int) $link['level']) или print_r( intval ($link['level']));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы