Как в друпале правильно выполнять SQL запросы?

Главные вкладки

Аватар пользователя gumk gumk 10 января 2009 в 19:54

Как в друпале правильно выполнять SQL запросы?

пробую так
<?php
$result = db_query_range("SELECT users.uid AS uid,
users.name AS users_name,
og_uid.is_admin AS og_uid_is_admin,
og_uid.created AS og_uid_created
FROM shvabra_users users
LEFT JOIN shvabra_og_uid og_uid ON users.uid = og_uid.uid
LEFT JOIN shvabra_node node_og_uid ON og_uid.nid = node_og_uid.nid
WHERE (users.status <> 0) AND (og_uid.is_active <> 0) AND (og_uid.is_admin in ('0', '1')) AND (og_uid.nid = %d)
ORDER BY og_uid_created DESC", $node->nid);
while($nod = db_fetch_object($result)) {
print_r($nod, 1);
};

?>
ничего не выводит (((

Комментарии

Аватар пользователя olk olk 10 января 2009 в 21:40

Ну во первых db_query_range требует еще аргументов с какой записи и по какую выводить
db_query_range($query,$arg,$start_rec,$end_rec), в вашем варианте наверное надо надо использовать просто db_query,
про корректность самого запроса ни чего сказать не могу (не разбирался)
Ну и второе print_r со вторым аргументом равным TRUE (в вашим случае 1 == TRUE) ни чего не выводит а возвращает переменную содержащую контекст,
т.е вам надо сделать или print print_r($nod,1); либо print_r($nod);

Аватар пользователя gumk gumk 10 января 2009 в 23:36

Спасибо, получилось
А как сделать чтобы foreach выполнялся только 8 раз? (знаю что можно в запросе LIMIT поставить, но мне в другом месте также необходимо вывести все результаты запроса)

Аватар пользователя neochief neochief 11 января 2009 в 1:16

"gumk" wrote:
А как сделать чтобы foreach выполнялся только 8 раз?

использовать FOR Smile либо счетчик, по-другому — никак.