SELECT node.nid AS nid FROM node node LEFT JOIN content_type_bio node_data_field_birthday ON node.vid = node_data_field_birthday.vid
WHERE (node.type IN ('bio')) AND (DATE_FORMAT(STR_TO_DATE(node_data_field_birthday.field_birthday_value, '%Y-%m-%dT%T'), '%Y-%m-%d') = '2000-01-01')
WHERE (node.type IN ('bio')) AND (DATE_FORMAT(STR_TO_DATE(node_data_field_birthday.field_birthday_value, '%Y-%m-%dT%T'), '%Y-%m-%d') = '2000-01-01')
Данный запрос выводит список из id нод профилей, с указанной датой 2000-01-01
Как сделать так, чтобы год не играл роли в данном запросе, т.е. получить все ноды с указанным месяцем и числом?
Комментарии
Как первый вариант воспользоваться функцией
RIGHT( string , INTEGER)
и сравнивать уже с
= '01-01'
учите матчасть
с запросом разобрался
теперь пытаюсь получить значения непосредственно на странице друпала и почему-то не выходит.. что не так в этом коде?
<?php$d = date('d',time());
$m = date('m',time());
$mysql = "SELECT node.nid AS nid FROM node node LEFT JOIN content_type_bio node_data_field_birthday ON node.vid = node_data_field_birthday.vid WHERE (node.type in ('bio')) AND DATE_FORMAT(STR_TO_DATE(node_data_field_birthday.field_birthday_value, '%Y-%m-%dT%T'), '%m-%d') = '".$m."-".$d."')";
$mysql = db_query($mysql);
$myresult = db_fetch_object($mysql);
print_r($myresult);?>
и почему например такая схема работает?
<?php$comments = db_result(db_query("SELECT count(*) AS count FROM {comments}"));
echo $comments;?>
а такая нет?
<?php
$d = date('d',time());
$m = date('m',time()); $mysql = "SELECT node.nid AS nid FROM node node LEFT JOIN content_type_bio node_data_field_birthday ON node.vid = node_data_field_birthday.vid WHERE (node.type in ('bio')) AND DATE_FORMAT(STR_TO_DATE(node_data_field_birthday.field_birthday_value, '%Y-%m-%dT%T'), '%m-%d') = '".$m."-".$d."')"; $myresult = db_result(db_query($mysql));
echo $myresult;?>
Воспользуйтесь вот этим, т.к. db_result возвращает массив в вашем запросе
<?php
$result = db_query("SELECT nid, title FROM {node}");
foreach ($result as $record) {
// Do something with each $record
print $record->nid . $record->title; // к примеру
}
?>