Форма отправки хука, как увеличить поле базы данных? - PullRequest
0 голосов
/ 27 октября 2011

я использую крючковую форму alter в drupal.

Если поля оставлены пустыми, я хочу получить последнее значение, отправленное для поля, и увеличить его на .01

Я пытался

function uc_pa_form_submit($form, &$form_state) {
  global $user;
$maxbid = db_result(db_query('SELECT MAX(amount) FROM {uc_auction_bids} WHERE nid = %d', $node->nid));
  $input01 = (($maxbid) ? $maxbid : 0) + .01;

drupal_write_record('table', $input01);

но это не обновление с чем-либо, я знаю, что $ input01 работает, поскольку я попробовал это в другой функции.

если я изменю drupal_write_record ('таблица', $ input01);к представленной стоимости это работает.

Ответы [ 2 ]

1 голос
/ 27 октября 2011

drupal_write_record() ожидает, что второй аргумент будет объектом, в момент, когда вы передаете число.Кроме того, если вы пытаетесь обновить запись, вам необходимо предоставить первичные ключи таблицы в качестве третьего аргумента.Как то так:

$sql = 'SELECT * FROM FROM {uc_auction_bids} WHERE nid = %d ORDER BY amount DESC LIMIT 1';
$obj = db_fetch_object(db_query($sql));
$obj->amount = (($obj->amount) ? $obj->amount: 0) + .01;

drupal_write_record('uc_auction_bids', $obj, array('bid'));
0 голосов
/ 27 октября 2011

Я новичок здесь и хотел бы просто прокомментировать, а не сказать, что я отвечаю на что-нибудь ...

В любом случае, что такое $ maxbid?Это не существует в функции до сравнения.Это глобальный?Или $ input должен быть $ maxbid (или наоборот) в вашем примере кода?

...