1

こんにちはすべて私はCodeigniterを初めて使用します。前のページから渡された、account_idに関連するすべてのデータを取得しようとしています。

account_idを渡しますが、account_idに関連付けられた名前フィールドを渡しません。名前フィールドは空白です。

エラーが発生しました:

これがコントローラーの私のコードです:

function input($account_id = '', $name = ''){
   if((int)$account_id > 0){
      $query = $this->db->select('name', $name);
      $query = $this->db->get_where('db_accounts', array('account_id' => $account_id));

      $data['account'] = $query;
      $data['fname']['value']   = $name;
      $data['faccount_id']['value'] = $account_id;
      $data['name']        = '';
      $data['account_id']  = '';
  }

  $this->load->view('manage/input',$data);      
}

これが私の入力ビューフォームです:

<?php

   $data = array(
          'name'  => $fname['value'],
          'account_id' => $faccount_id['value']
        );

echo '<form action="/manage/edit" method="post" accept-charset="utf-8">';
echo form_hidden($data);

echo $account_id .' Account ID'.
    form_input($faccount_id); 
echo $name .' Name'.
    form_input($fname); 

$data = array('name' => 'submit', 'value' => 'Update Account', 'class' => 'submit');
echo form_submit($data);

  ?>
 <?php echo form_close(); ?>
4

3 に答える 3

3

get_whereクエリを準備するだけだと思います

$query->row_array()結果を配列として返す必要があります

$query = $this->db->get_where('db_accounts', array('account_id' => $account_id));
$result = $query->row_array();

質問の 2 番目の部分については、多くのことが起こっているようです。$nameあなたのinput関数の値は何ですか? 実際に に値を渡していますinputか? 名前がinput関数に設定されていることを確認してください。そうしないと、空の文字列になります。

于 2013-02-14T14:25:15.533 に答える
2

ドキュメントから占有:

$this->db->select() は、オプションの 2 番目のパラメーターを受け入れます。FALSE に設定すると、CodeIgniter はフィールドまたはテーブル名をバッククォートで保護しようとしません。これは、複合 select ステートメントが必要な場合に便利です。

だから交換

$query = $this->db->select('name', $name);

$this->db->select('name', $name); // No need to assign it to a variable

次に$this->db->get_where();、クエリを実行し、結果を取得するために必要なクエリ オブジェクト全体を返します。

$query = $this->db->get_where('db_accounts', array('account_id' => $account_id));
$result = $query->row_array(); //For single row
$result = $query->result_array(); //For more than one row
于 2013-02-15T05:12:00.207 に答える