Здравствуйте, помоги пожалуйста написать sql запрос, а то я уже сломал всю голову:(
вот этот sql запрос выводит 100 нод прикрепленных к 37 термину, но мне нужно еще к этому сортировать эти ноды по полю weight другого словаря (например 5) помоги пожалуйста!!!
<?php
$tag = 37;
$count = 100;
$result = db_query_range(db_rewrite_sql("SELECT nr.body, f.filepath
FROM {node} n
INNER JOIN {node_revisions} nr ON n.nid = nr.nid
INNER JOIN {upload} u ON nr.nid = u.nid
INNER JOIN {files} f ON u.fid = f.fid
INNER JOIN {term_node} tn ON n.nid = tn.nid
INNER JOIN {term_data} tn ON n.nid = tn.nid
WHERE tn.tid = '%s' AND n.status = 1
ORDER BY td.weightasc"),$tag,0,$count);
while (
$node = db_fetch_object($result)) {
$items[] = l($node->body, $node->filepath)."<br><br>";
}
$output = theme('item_list', $items, null , 'ul', array('class'=>'links'));
print $output;?>
Комментарии
вот этот запрос в верхнем ошибка...
<?php
$tag = 37;
$count = 100;
$result = db_query_range(db_rewrite_sql("SELECT nr.body, f.filepath
FROM {node} n
INNER JOIN {node_revisions} nr ON n.nid = nr.nid
INNER JOIN {upload} u ON nr.nid = u.nid
INNER JOIN {files} f ON u.fid = f.fid
INNER JOIN {term_node} tn ON n.nid = tn.nid
INNER JOIN {term_data} td ON tn.tid = td.tid
WHERE tn.tid = '%s' AND n.status = 1
ORDER BY td.weight asc"),$tag,0,$count);
while (
$node = db_fetch_object($result)) {$items[] = l($node->body, $node->filepath)."<br><br>";
} $output = theme('item_list', $items, null , 'ul', array('class'=>'links'));
print $output;?>
А как связан Ваш 37 термин с 5 словарем?
не как не связаны, всего 2 словаря, ноды связаны с 1 словарем по 37 термину, а по 2 словарю необходимо фильтровать, в нем есть термины 1, 2, 3, ... по ним и фильтруем в порядке убывания
я наверное не совсем понимаю вас..
если нет никакой связи то как можно сортировать по второму словарю? какое он отношение имеет к первому или к материалам?
ну а если бы была свзяь, то нужно было бы добавить еще:
INNER JOIN {term_node} tn2 ON n.nid = tn2.nid
INNER JOIN {term_data} td2 ON tn2.tid = td2.nid
и в ордер добавить
ORDER BY td.weight, td2.weight
наверно тут 1 запросом не обойтись, и нужно 2 делать или как?
Сделайте выборку получите массив а затем отсортируйте использую кастомную функцию функцией usort