Как исправить результат выборки из БД?

Есть рабочий код для выборки данных из БД.
$result=mysql_query("SELECT `time`,`currency_name` FROM `$table_name` where `time`>UNIX_TIMESTAMP(SUBDATE(CURDATE(),$show_graph_date_begin)) AND `time`<UNIX_TIMESTAMP(SUBDATE(CURDATE(),$show_graph_date_end))  $id_code ") or die (mysql_error());
if ($select_amt >0)
{
for($select_amt; $select_amt>0; $select_amt--)
{
$row=mysql_fetch_assoc($result); 
$cryptocurrency_time=$row['time'];
$cryptocurrency_value=$row['currency_name'];
//....................

Мы выбираем из БД time и currency_name (время и валюту) и рисуем график.

В результате работы кода происходит одна неприятная вещь.
Если в БД в столбце currency_name есть значение - например число, то график рисуется верно.
Если в БД в столбце currency_name нет числа - то заместо currency_name подставляется time.
И, как я понял (это уже не точно), заместо time - ничего. А точнее график javascript сам берет время - устанавливая свою начальную дату 1970 год.

Как исправить результат выборки из БД?
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
@remzalp
Программер чего попало на чем попало
У меня идиотский вопрос - что мешает один раз нормализовать данные в БД, чтобы не городить костылей?
Почему название валюты внезапно стало значением?
Почему в поле для хранения числовых значений вообще сумел храниться текст???

На данный момент ситуация видится мне такой:
#define TRUE FALSE //счастливой отладки

На предмет костыля для решения проблемы:
if (!is_numeric($cryptocurrency_value)) continue;
if (!is_numeric($cryptocurrency_time)) continue;

и всё, если у нас нет даты или числа в значении валюты - мы просто пропускаем эту запись.
Добавить в цикле как раз по точке обрыва кода.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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