lid line
1 97
2 98
3 99
4 100
5 101
6 102
7 103
Если я сделал запрос
$nodes = db_query("SELECT lid, line FROM `lines`");
Как теперь мне из $nodes вырвать только те значения line, которые соответствуют определенным lid?
Спустя 17 минут, 22 секунды (12.01.2011 - 18:56) inpost написал(а):
vedbmak
А пример?
А пример?
Спустя 7 минут, 47 секунд (12.01.2011 - 19:04) vedbmak написал(а):
Я делаю модуль для друпала)))У меня есть функция...
Т.е. lid - чекбоксы.
Затем я пишу обработчик нажатия сабмита, например пытаюсь такой, но он выдает вместо значений намись Array((запутался
function clearline_form_table() {
$nodes = db_query("SELECT lid, line FROM `lines`");
while ($node = db_fetch_object($nodes)) {
$options[$node->lid] = '';
$form['line' ][$node->lid] = array('#value' => $node->line);
}
$form['lid'] = array(
'#type' => 'checkboxes',
'#options' => isset($options) ? $options : array(),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Очистить',
);
return $form;
}
Т.е. lid - чекбоксы.
Затем я пишу обработчик нажатия сабмита, например пытаюсь такой, но он выдает вместо значений намись Array((запутался
function clearline_form_table_submit($form, &$form_state)
{
$lids = array();
foreach ($form_state['values']['lid'] as $key) {
if ($key) {
$lids[] = $form['line'][$key];
}
}
drupal_set_message('Deleted nodes ' . implode(', ', $lids));
}
Спустя 7 часов, 24 минуты, 33 секунды (13.01.2011 - 02:28) gidrosoldat написал(а):
Не проще сразу сделать?
$nodes = db_query("SELECT lid, line FROM `lines` WHERE lid = line");
Спустя 7 часов, 12 минут, 7 секунд (13.01.2011 - 09:40) linker написал(а):
SELECT `line` FROM `lines` WHERE `lid` = 5или
SELECT `line` FROM `lines` WHERE `lid` in (2, 4, 10)
Спустя 8 часов, 27 минут, 29 секунд (13.01.2011 - 18:08) vedbmak написал(а):
ммм пытался так сделать...
Вообще пишу модуль для работы с оборудованием cisco)))Дальше идет отправка логина и пароля. Но затем, идет отправка команды очистки линии
foreach ($form_state['values']['lid'] as $key) {
if ($key) {
$lids = db_fetch_object(db_query("SELECT line FROM `lines` WHERE lid = $key"));
set_time_limit(20);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, 'тут ип адрес', '23');
Вообще пишу модуль для работы с оборудованием cisco)))Дальше идет отправка логина и пароля. Но затем, идет отправка команды очистки линии
send_command($socket, "clear line $lids");И тут все виснет, т.е. я думаю скорее всего не то что то подставляет, и отправляет неправильную команду. Если отправлять не $lids а именно название линии, то все нормально, все выполняется. send_command моя функция, он рабочая)
Спустя 11 минут, 39 секунд (13.01.2011 - 18:19) gidrosoldat написал(а):
Если line должен соответствовать lid'у, то почему в запросе lid к lid'у приравнивается ?
$form_state['values']['lid'] переборается как $key, а в запросе опять проверяется на соответствие lid. Может тут опечатка ?
$form_state['values']['lid'] переборается как $key, а в запросе опять проверяется на соответствие lid. Может тут опечатка ?
Спустя 1 час, 11 минут, 23 секунды (13.01.2011 - 19:31) vedbmak написал(а):
потому что в $form_state['values']['lid'] содержатся отмеченые чекбоксом lidы. И мы в запросе прогоняем их на соответствие.
Выдает Deleted "такая то линия", т.е. все правильно, но это работает только если поставить (array)$lids. Именно (array) помог, если это не ставить то выдает ошибку, вот я и думаю, что наверно косячу с типом. Тока вот мозгов не хватает чтоб додумать)))
drupal_set_message('Deleted ' . implode(', ', (array)$lids));
Выдает Deleted "такая то линия", т.е. все правильно, но это работает только если поставить (array)$lids. Именно (array) помог, если это не ставить то выдает ошибку, вот я и думаю, что наверно косячу с типом. Тока вот мозгов не хватает чтоб додумать)))
Спустя 1 час, 12 минут, 43 секунды (13.01.2011 - 20:44) vedbmak написал(а):
тема закрыта, разобрался сделал
function clearline_form_table_submit($form, &$form_state)
{
$lids = array();
foreach ($form_state['values']['lid'] as $lid) {
if ($lid) {
$lids[] = drupal_render($form['line'][$lid]);
}
}
drupal_set_message('Deleted nodes ' . implode(', ', $lids));
}