循环时从Drupal 6模块表单获取表单值

inside form hook:

     $count = 1;
    while($slice = db_fetch_array($fruit)){
      $section = $slice['section'];

      $form[$section][$count] = array(
          '#type' => $slice['type'],
          '#title' => $slice['title'],
      '#value' =>$slice['value'],
        //'#default_value' => $slice['default_value'],
      '#disabled' => $true_statement,
          '#size' => $slice['size'],
      '#description' => $slice['description'], 
      '#options' => unserialize($slice['options']), 
      '#prefix' => $slice['prefix'], 
      '#suffix' => $slice['suffix'], 
);
    $count = $count+1;
    }

inside save :

function student_grant_save($form, &$form_state) {
  $vari = $form_state['values']['2'];  //or question count # 3,4,5...etc...
  drupal_set_message(t('hi').$vari);
}

only the hi gets printed. Why can't i see the form value that the user imputed?
i used dpm($form_state); and I see that i have value entries but they are blank even though user entered them in.
For some reason the 'value' entry in my mysql table that has all the question atributes, is taking over the 'default_value' and not letting the user alter the form values upon submit. Is there any way around this?