...

Привіт усім,
Я хочу витягнути дані з БД та відобразити їх у графіку рядка.
Ось функція, яка отримує дані з БД:
(Є 2 подібні змінні, які я показую тут лише одну, щоб бути якомога коротшою)

function get_Single_Couple_Short_profit($item, $user_id, $start_date, $end_date, $hour_start, $hour_end, $days)
{	
	global $db;
	
	try
	{
		$sql = "SELECT DATE_FORMAT(`c_time`, '%m-%y') AS time, `c_time`, `o_time`, `item`, `user_id`, `profit`, `hideshow` 
		        FROM data 
				WHERE DATE(`o_time`) BETWEEN :start_date AND :end_date 
			    AND TIME(`o_time`) BETWEEN :hour_start AND :hour_end
				AND WEEKDAY(`o_time`) IN ($days)
				AND `hideshow` = 'hide'
				AND type LIKE 'sell%'
				AND `user_id` = :user_id
				AND `item` = :item
				ORDER BY `c_time` ASC";
		 $stmt = $db->prepare($sql);
		 $stmt->bindParam(':item', $item, PDO::PARAM_STR);
		 $stmt->bindParam(':user_id', $user_id, PDO::PARAM_STR);
		 $stmt->bindParam(':start_date', $start_date, PDO::PARAM_STR);				 $stmt->bindParam(':end_date', $end_date, PDO::PARAM_STR);
		 $stmt->bindParam(':hour_start', $hour_start, PDO::PARAM_STR);
		 $stmt->bindParam(':hour_end', $hour_end, PDO::PARAM_STR);
		 $stmt->execute();

		 if($stmt->rowCount() == 0) 
		   return false;
		else
		  return $stmt->fetchAll(PDO::FETCH_ASSOC);
		
	}
	catch(Exception $e) 
	{
	   return false;        
	}
}// End function

Тут я отримую його у змінній і перевіряю її (на цю публікацію:

$data_ls = get_Single_Couple_Short_profit($couple, $user_id, $start_date, $end_date, $hour_start, $hour_end, $days);
var_dump($data_ls );
die();

Ось ccreenshot результат, коли є дані для вилучення з db:

І ось результат, коли немає даних для вилучення з БД:

C: \ wamp64 \ www \ a_website_for_test \ pages \ інструмент_c.inc.php: 34:булевий неправильний

Ось код, який передає дані Variabls'F на змінну JavaScript
і перевірте це (на цю публікацію:

////////       Convert PhP $data_ll array to JavaScript array Short    //////////
	  var datum_ls = ;
console.log('value of datum_ls');
console.log(datum_ls);

Ось скріншот результату : last_smile:
з_data_js

І ось скріншот, коли немає даних для відображення : last_smile:
no_data

Моя проблема полягає в тому, що код, який працює добре, коли є дані для відображення, не виходить з ладу, коли немає даних для відображення.

Ось мої, якщо заяви
це одне:

	   if(datum_ls != false && datum_ll != false){  
//Callback for line chart long
	    google.charts.load('current', {'packages':['corechart']});
      google.charts.setOnLoadCallback(drawChart_l);
//Callback for line chart short
	    google.charts.load('current', {'packages':['corechart']});
      google.charts.setOnLoadCallback(drawChart_s);
	   }// End check if there is only 1 trade type

І ось ще один : last_smile:

  if(datum_ls != false && datum_ll != false){

 ////////////////////////    Drawing the line graph long   //////////////////////
   function drawChart_l() {

      var data_ll = new google.visualization.DataTable();
      data_ll.addColumn('string', ' ');
      data_ll.addColumn('number', 'acc_profit');

      for(var i = 0; i ',
            subtitle: 'in  [USD]',
		    backgroundColor: '#d7bde2',
			colors: ['black'],
		    vAxis: {title: 'Balance', gridlines: { count: 5 }},
		    
	      animation: {'startup': 'true', 'duration': 1000, 'easing': 'out'},
		  bar: { groupWidth: '90%' },
	      hAxis: { showTextEvery: 10, minTextSpacing: 10}
        };

      var chart = new google.visualization.LineChart(document.getElementById('line_div_l'));
	  
      chart.draw(data_ll, options);
    }//END CHART line long


 ////////////////////////    Drawing the line graph short   //////////////////////
   function drawChart_s() {

      var data_ls = new google.visualization.DataTable();
      data_ls.addColumn('string', ' ');
      data_ls.addColumn('number', 'acc_profit');

      for(var i = 0; i ',
            subtitle: 'in  [USD]',
		    backgroundColor: '#f9e79f',
			colors: ['black'],
		    vAxis: {title: 'Balance', gridlines: { count: 5 }},
		    
	      animation: {'startup': 'true', 'duration': 1000, 'easing': 'out'},
		  bar: { groupWidth: '90%' },
	      hAxis: { showTextEvery: 10, minTextSpacing: 10}
        };

      var chart = new google.visualization.LineChart(document.getElementById('line_div_s'));
	  
      chart.draw(data_ls, options);
    }//END CHART line short
} // End check if there is only 1 trade type

Я спробував datum_ls[0] замість просто datum_ls

Ось код для Divs, де повинні відображатися графіки:

Коли я видаляю JavaScript, якщо є оператором і є дані для відображення, все працює добре
Що не так з JavaScript, якщо заява?

Болівія, Парагвай, Бразилія, Уругвай та Аргентина

Прес-реліз

Це машинний переклад випуску нижньої палати Бразилії

Цього четверга (12) нижня палата схвалила Проект законодавчого указу (PDL) 159/22, який передбачає скасування плати за роумінг між МЕРКОСУР країни (Аргентина, Бразилія, Парагвай, Уругвай і Болівія). Текст буде направлений на аналіз до Сенату.

Представлена ​​Представництвом Бразилії в парламенті Меркосур пропозиція включає угоду про скасування збору плати за міжнародний роумінг для кінцевих користувачів Меркосур, підписану в 2019 році.

Мета полягає в тому, щоб дозволити користувачам мобільних телефонів, які подорожують країнами блоку, отримувати плату згідно з планом, укладеним у їхній країні походження, без додаткової плати.

Доповідач тексту для Конституції та Комітету з питань правосуддя та громадянства (CCJ), законодавець Орландо Сілва (PCdoB-SP), рекомендував схвалити угоду.

Джерело: Інформаційне агентство нижньої палати.

Підпишіться на провідну платформу бізнес-аналітики в Латинській Америці з різними інструментами для постачальників, підрядників, операторів, уряду, юридичної, фінансової та страхової галузей.

” class=”btn btn-lg btn__orange-light ” qa-automation=”cmd_robot_btn_footer_content_demo”> Запит на демонстрацію