2017-03-02 9 views
0

codeigniterのmysql_fetch_rowの使い方は? PHPで とき、私のユーザー私は数タイプのインデックスを持つ配列を得ることができ、このcodeigniterのmysql_fetch_row

$result = mysql_query("SELECT id,email FROM people WHERE id = '42'"); 
if (!$result) { 
    echo 'Could not run query: ' . mysql_error(); 
    exit; 
} 
$row = mysql_fetch_row($result); 

echo $row[0]; // 42 
echo $row[1]; // the email value 

のようになりますでしょうは、mysql_fetch_row。

しかし、私は文字列型にインデックスを持つ配列を取得し、このコード

$db=$this->load->database($_SESSION['DB'], TRUE); 
     $q=$db->query("select ID, Name from mdashboard"); 
     foreach($q->result_array() as $d) 
     { 
      echo $d['ID']; 
     } 

のようなCodeIgniterの使用。

Codeigniterは私の最初のコードが好きですか?

+2

** ** 'mysql_query'を使用しないでください新しいバージョンで廃止予定されているため。しないでください。そこに止まる。 CodeIgniterのデータベースへのアクセスに関する文書(https://codeigniter.com/user_guide/#database-reference)をお読みください。エラーが発生した場合は、問題を解決して修正してください。あきらめずに廃止されたAPIに戻ってください。多分 '$ d'はあなたが期待している形ではないでしょう。それにアクセスする前に、その内容を確認してください。 – tadman

+0

** USE ** 'mysqli' ** OR **' pdo' –

+0

[ASSOC配列値を数値インデックスで取得]の重複可能性があります(http://stackoverflow.com/questions/21854774/get-assoc-array-value -by-numeric-index) – hassan

答えて

0

試しにthis.use row_array()のように試してください。 CodeIgniterの使用MySQLで

$this->db->select('id,email'); 
$this->db->where('id',42); 
$row = $this->db->get('people')->row_array(); 
echo $row['id']; // 42 
echo $row['email']; // the email value 
+0

私はrow_arrayを使用するとき$ row [0]以外の$ row ['id']のようなコードを入力する必要があります – Kunbero

+0

Ohoはい申し訳ありません。ポイントで –

+0

、私は数字インデックスではなく、文字列インデックス – Kunbero

0

あなたがあなたの代わりにmysql_fetch_rowのCodeIgniterのrow機能を使用する必要があります

use result_array() get result or use row_array() get number 
public function getBy($where = array(), $field = '*') 
{ 
    $this->db->select($field); 
    $query = $this->db->get_where($this->table_name, $where); 
    if (!$query) { 
     return array(); 
    } 
    return $query->result_array(); 
} 
0

ことを行うことができます配列として結果を取得:

$q=$db->query("SELECT id,email FROM people WHERE id = '42'"); 
$result= $q->row(); 
$result_array = array_values((array)$result); 
$email = $result_array[1]; 
+0

どのように結果が1つ以上のデータですか? – Kunbero

+0

は結果を配列にキャストして私の答えを編集しました。 'result_array [0]'はIDです、 'result_array [1]'は電子メールです。 – AnatPort

+0

結果が複数の行である場合は、 'q-> result()'を使用します。 – AnatPort

0

これはあなた

手助けすることができます
$this->db->from('people'); 
$this->db->select('id,email'); 
$this->db->where('id',42); 
$result_array = $this->db->get(); 
$result=$result_array->row_array() 
echo $row[0]; 
echo $row[1]; 
0

以下は、必要に応じてデータを取得するためのカスタム機能です。

function getData ($news_id) 
{ 
    $this->db->select('ID, Name'); 
    $this->db->from('mdashboard'); 

    $query = $this->db->get(); 

    if ($query->num_rows() > 0) 
    { 
     $row = $query->row_array(); 
     return $row; 
    } 
} 
$result = getData(); 
echo $result['ID']; 

注:DONTのUSE mysql_は*関数は、それらが