我正在建造一家拍卖行。我正在使用nodejs-mysql包,我有这个nodejs server.js
- 主页的代码,显示多个拍卖:
// loop
var pollingLoop = function() {
// Doing the database query
var query = connection.query('SELECT a.`id`,a.`product_id`,a.`price`,a.`random`,a.`price_end`,TIMESTAMPDIFF(SECOND,NOW(),a.`date_end`) AS duration,p.`price_retail` FROM `auctions` AS a LEFT JOIN `products` AS p ON p.`id` = a.`product_id` WHERE TIMESTAMPDIFF(SECOND,NOW(),a.`date_end`) > "-1" ORDER BY `duration` DESC,`id` DESC'),
auctions = [];
$_GET['id']
可用于另一个SELECT
- WHERE
条件的语句时,如何更改此查询?因为我想为单次拍卖添加WHERE auction='$_GET['id']'
然后(但是服务器端)。 SELECT
- 语句根本不起作用。这是它在nodejs-server-file server.js
:http://i.stack.imgur.com/37fDl.jpg 答案 0 :(得分:0)
有两种方法可以将Javascript字符串分成多行:反斜杠和字符串连接。
使用反斜杠划分
var text = "Lorem ipsum dolor sit amet,\
consectetur adipisicing elit,\
sed do eiusmod tempor incididunt\
ut labore et dolore magna aliqua.";
使用字符串连接进行分隔
var text = "Lorem ipsum dolor sit amet,"
+ "consectetur adipisicing elit,"
+ "sed do eiusmod tempor incididunt"
+ "ut labore et dolore magna aliqua.";
您需要以动态方式构建查询。这样的事情。
var query = 'SELECT \
a.`id`, \
a.`product_id`, \
a.`price`, \
a.`random`, \
a.`price_end`, \
TIMESTAMPDIFF(SECOND, \
NOW(), \
a.`date_end`) AS duration, \
p.`price_retail` \
FROM \
`auctions` AS a \
LEFT JOIN \
`products` AS p ON p.`id` = a.`product_id`';
var where = '';
if (condition) {
where = 'WHERE \
TIMESTAMPDIFF(SECOND, \
NOW(), \
a.`date_end`) > - 1';
} else {
where = "auction='$_GET['id']'";
}
var order = ' ORDER BY `duration` DESC , `id` DESC';
query = query + where + order
var res = connection.query(query), auctions = [];
P.S。
这只是一个想法。例如,您可以使用var where = array()
并填写条件。然后,只需循环遍历数组并按AND
创建查询连接条件。
UPD:
如果您不使用 express 模块,您可以使用url模块找到GET参数。
var query = require('url').parse(req.url,true).query;
var id = query.id;
var some_par = query.some_par;
For url: /path/filename?id=123&some_par=456
然后,您可以使用id
变量构建查询。