2011-02-01 21 views
1
<?php 

/* SC: Shop Category */ 
$SCStatement = "SELECT * FROM shop_categories"; 
$SCQuery = mysql_query($SCStatement); 

while($SCFetch = mysql_fetch_array($SCQuery)){ 
    $SCItems[] = array(
     'id' => $SCFetch['id'], 
     'name' => $SCFetch['cat_name'], 
     'desc' => $SCFetch['cat_description'] 
    ); 
} 

$SCNumCols = 2; 
$SCNumItems = count($SCItems); 
$SCNumRows = ceil($SCNumItems/$SCNumCols); 



function bindArrayToObject($array) { 
    $return = new stdClass(); 
    foreach ($array as $k => $v) { 
     if (is_array($v)) { 
      $return->$k = bindArrayToObject($v); 
     } 
     else { 
      $return->$k = preg_replace ('/<[^>]*>/', '', $v); 
     } 
    } 

    return $return; 
} 

$newObject = bindArrayToObject($SCItems); 

echo $newObject->name; 

?> 

データベースから取得するデータは、$ SCItems []配列に格納されます。問題は、$ newObject-> nameをエコーするときです。何も表示されません。データを表示するためにこのコードを追加するもの$newObject->name; ありがとうございます。PHP複数配列 - オブジェクトを使用して配列キーの値をエコーする

+1

あなたは何を達成しようとしていますか?後で結果に複数の行をオブジェクトにバインドすると、最後の行だけが取得されます。オブジェクトの配列が必要です。多くの論理エラーがあります –

+0

FYI、データベースからフェッチしているときに、列の名前を他のものに変更したい場合は、次のように直接問い合わせることができます: 'SELECT id、cat_name as name、cat_description as desc FROM shop_categories' – naiquevin

答えて

0

さて、このコードから判断すると、何を持っていることは、あなたのbindArrayToObject機能は、おそらく何をすべきか、だから、オブジェクト

 
$newObject = new stdClass(); 
$newbject->0 = new stdClass(); 
$newbject->0->id = 1; 
$newbject->0->name = 'name 1'; 
$newbject->0->desc = 'description 1'; 

$newbject->1 = new stdClass(); 
$newbject->1->id = 2; 
$newbject->1->name = 'name 2'; 
$newbject->1->desc = 'description 2'; 

を構築しようとしていることから、その後

 
$SCItems = Array(
0 => Array(
    'id' => 1, 
    'name' => 'name 1', 
    'desc' => 'description 1' 
), 
1 => Array(
    'id' => 2, 
    'name' => 'name 2', 
    'desc' => 'description 2' 
), 
); 

のようなもので、あなたの '$ SCItems'をループしてから各エントリを使用するbindArrayToObject

私にははるかに理にかなって、あなたが $SCObjects[0]->nameにアクセスすることができるはずです。そこから
 
$SCObject = Array(); 
foreach($SCItems as $SCItem) { 
$SCObjects[] = bindArrayToObject($SCItem); 
} 

+0

ありがとうJakob Nilsson-Ehle、あなたの英雄 – Kirk

関連する問題