Не получается что-то: пытаюсь на drupal 7 перевести код; у меня получается так:
<?php
if(!($node = menu_get_object()))
return;
$list = db_query("SELECT столбец1, столбец2 from таблица1 where столбец3='%s' ORDER BY столбец2", array($node->title));
$names = array();
$urls = array();
foreach($list as $row){
$header = array('Страницы раздела');
$names[] = $row->столбец2;
$urls[] = $row->столбец1;
}
?>
исходный код (работал на drupal6):
<?php
if(!($node = menu_get_object()))
return;
$list = db_query("SELECT столбец1, столбец2 from таблица1 where столбец3='%s' ORDER BY столбец2", $node->title);
$names = array();
$urls = array();
while($row = db_fetch_object($list)){
$header = array('Страницы раздела');
$names[] = $row->столбец2;
$urls[] = $row->столбец1;
}
?>
Помогите, в чем проблема?
Комментарии
да, и еще:
у меня было изменено меню в drupal 6 (некоторые пункты перемещены, для удобства); теперь многие пункты меню, которые должны быть в управлении/настройках после "апдейта" просто отсутствуют. Можно ли как-то сделать меню "по умолчанию", т.е. чтоб было так, как должно быть?
да и некоторые пункты почему-то "абракадаброй" отображаются (их мало - только то, что появляется при создании страницы, других пока не замечал). в настройках базы стоит utf8_unicode_ci.
<?php
db_query("SELECT столбец1, столбец2 FROM {таблица1} WHERE столбец3 = :stolbec3 ORDER BY столбец2", array(':stolbec3' => $node->title))
?>
доки, доки и ещё раз доки а только потом пытаться
сложно разобраться. с 6м-то напряжно было, а сейчас получается, что все то уже "неверно". заново придется....
так, как вы предложили не получится (столбец3 = :stolbec3), т.к. столбец3 должен быть "равен" названию страницы.
мне и тогда помогли код написать, а я только потом разобрался. а сейчас опять второй день мучаюсь.
PS. с меню разобрался. а вот с кодировкой что-то непонятно.
вот, пытался еще с функции
<?php
$title = db_query("SELECT title FROM {node} WHERE nid = :nid", array(':nid' => $nid))->fetchField();
?>
подставить значение. но все равно не "пошло"...
значит $nid не правильный, код полностью рабочий
т.е. если я заменю
<?php
:stolbec3
?>
на
<?php
$title
?>
то должно работать???
может кавычки нужны? или двоеточие сохранить...
нет
нет
да
<?php
if(!($node = menu_get_object()))
return;
$title = db_query("SELECT title FROM {node} WHERE nid = :nid", array(':nid' => $nid))->fetchField();
$list = db_query("SELECT столбец1, столбец2 from таблица1 where столбец3=:$title ORDER BY столбец2", array(:$title->title));
$names = array();
$urls = array();
foreach($list as $row){
$header = array('Страницы раздела');
$names[] = $row->столбец1;
$urls[] = $row->столбец2 ;
}
?>
не выходит никак. вроде, как я понимаю, где-то в array ошибка.
<?php
$title = db_query("SELECT title FROM {node} WHERE nid = :nid", array(':nid' => $node->nid))->fetchField();
$list = db_query("SELECT столбец1, столбец2 FROM {таблица1} WHERE столбец3 = :title ORDER BY столбец2", array(':title' => $title));
?>
доки вы похоже прочитать так и не удосужились
да, вроде, по "образцу" все делал... не понял, почему title во второй строке должен быть без $... да еще много чего не понял. в общем, надо разбираться, т.к. еще много "подобных" примерчиков.
спасибо за помощь!