Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.09.2020, 00:20
Аспирант
Отправить личное сообщение для riaron Посмотреть профиль Найти все сообщения от riaron
 
Регистрация: 16.08.2020
Сообщений: 33

Почему то логика не срабатывает и query равно ничему
Почему то логика не срабатывает и query равно ничему
app.get('/smart', function(req, res) {
	var order;
	var side;
	var query;
	var smartphopneList=[];
	order='price';
	side='ASC';
	// Connect to MySQL database.
	var connection = getMySQLConnection();
	connection.connect();
	// Do the query to get data.
	if((order=='name') && (side =='ASC')){
		query='SELECT `id`,`prod`,`name`,`description`,`photo`,`price`,`popularity`,`sale` FROM `smartphone` ORDER BY `name` ASC';
	}else if((order=='name') && (side=='DESC')){
		query='SELECT `id`,`prod`,`name`,`description`,`photo`,`price`,`popularity`,`sale` FROM `smartphone` ORDER BY `name` DESC';
	}else if((order=='price') && (side=='ASC')){
		query='SELECT `id`,`prod`,`name`,`description`,`photo`,`price`,`potypulari`,`sale` FROM `smartphone` ORDER BY `price` ASC';
	}else if((order=='price') && (side=='DESC')){
		query='SELECT `id`,`prod`,`name`,`description`,`photo`,`price`,`popularity,`sale`` FROM `smartphone` ORDER BY `price` DESC';
	}else if((order=='popularity') && (side=='ASC')){
		query='SELECT `id`,`prod`,`name`,`description`,`photo`,`price`,`popularity`,`sale` FROM `smartphone` ORDER BY `popularity` ASC';
	}else if((order=='popularity') && (side=='DESC')){
		query='SELECT `id`,`prod`,`name`,`description`,`photo`,`price`,`popularity`,`sale` FROM `smartphone` ORDER BY `popularity` DESC';
	}else if((order=='sale') && (side=='DESC')){
		query='SELECT `id`,`prod`,`name`,`description`,`photo`,`price`,`popularity`,`sale`,(`price` / 100 * `discount`)  AS `tsale` FROM `smartphone` ORDER BY `newprice` ASC';
	}else if((order=='sale') && (side=='DESC')){
		query='SELECT `id`,`prod`,`name`,`description`,`photo`,`price`,`popularity`,`sale`,(`price` / 100 * `discount`)  AS `tsale` FROM `smartphone` ORDER BY `newprice` DESC';
	}
	
	connection.query(query, function(err, rows, fields) {
	  	if (err) {
	  		res.status(500).json({"status_code": 500,"status_message": "internal server error"});
	  	} else {
	  		// Loop check on each row
	  		for (var i = 0; i < rows.length; i++) {

	  			// Create an object to save current row's data
		  		var smartphopne = {
		  			'id':rows[i].id,
		  			'prod':rows[i].prod,
		  			'name':rows[i].name,
		  			'photo':rows[i].photo,
		  			'description':rows[i].description,
		  			'price':rows[i].price,
		  			'len':rows.length,
					'tsale':rows.tsale,
					'popularity':req.cookies.sidepopularity,
					'pricee':req.cookies.sideprice,
					'sale':req.cookies.sidesale,
					'sett':req.cookies.sett,/**/
					  
		  		}
		  		// Add object into array
		  		smartphopneList.push(smartphopne);
	  	}
		
	  	// Render index.pug page using array 
		  res.render('index', {"smartphopneList": smartphopneList});
	  	}
	});

	// Close the MySQL connection
	connection.end();
	
});

где ошибка

Последний раз редактировалось riaron, 16.09.2020 в 00:25.
Ответить с цитированием
  #2 (permalink)  
Старый 16.09.2020, 03:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,658

И зачем куча условий, если достаточно сразу подставить значения в запрос (опять таки вопрос откуда они):

var query = 'SELECT `id`,`prod`,`name`,`description`,`photo`,`price`,`popularity`,`sale`, `price` / 100 * `discount` `tsale` FROM `smartphone` ORDER BY '+order+' '+side;


Соотнести сразу и newprice к sale.
Ответить с цитированием
  #3 (permalink)  
Старый 16.09.2020, 07:45
Аспирант
Отправить личное сообщение для riaron Посмотреть профиль Найти все сообщения от riaron
 
Регистрация: 16.08.2020
Сообщений: 33

почему условие не срабатывает? я вывожу console.log(query) пишет unsigned

Последний раз редактировалось riaron, 16.09.2020 в 07:56.
Ответить с цитированием
  #4 (permalink)  
Старый 16.09.2020, 10:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,658

Не в курсе, не спец по node. А вот ненужность условий тут и не спецу видна. То есть, явно прописать order='price'; side='ASC';, а затем узнавать условиями, что мы написали, это перебор.
Ответить с цитированием
  #5 (permalink)  
Старый 16.09.2020, 17:22
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 548

Сообщение от riaron
я вывожу console.log(query) пишет unsigned
undefined наверно пишет.
А где ставите console.log

Ну и так (не по делу) есть ошибки
стр 17 `potypulari`
стр 19 `sale``

Последний раз редактировалось voraa, 16.09.2020 в 17:29.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему alert не срабатывает для несуществующей переменной? Почемучкин Общие вопросы Javascript 10 16.08.2012 08:32
Клик срабатывает без щелчка на кнопке - почему?.. deivan Events/DOM/Window 3 13.08.2012 13:42
Почему функция срабатывает один раз? Bogdan808 Javascript под браузер 4 06.09.2010 22:41
Почему скрипт срабатывает только после обновления страницы? Randomizer jQuery 2 01.09.2010 18:01
Почему не срабатывает innerHTML? БВИ Internet Explorer 1 02.01.2009 18:00