钩子表单提交,如何增加数据库字段?

时间:2011-10-27 19:12:42

标签: php mysql drupal drupal-6

我在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('table',$ input01);提交的价值是有效的。

2 个答案:

答案 0 :(得分:1)

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'));

答案 1 :(得分:0)

我是新来的,希望我能发表评论,而不是说我正在回答任何事情......

无论如何,$ maxbid是什么?它在比较之前的函数中不存在。它是全球性的吗?或者在代码示例中$ $输入是$ maxbid(反之亦然)?