私はデータベースにテーブルを持っています。このテーブルでは、私は名前、parent_id.please、3つの列を追加しました。PHPを使用してテーブルから階層を作る
ID | name | parent_id
1 name1 0
2 name2 1
3 name3 1
これでデータベースからこのIDを取得したいと考えています。私はPHPでメソッドを作成し、データベースから1つずつデータをフェッチします。私は
$this->getData(3); // has a parent
のようなIDが3で、このメソッドを呼び出した場合
function getData($id)
{
$array = array();
$db = JFactory::getDBO();
$sql = "SELECT * from table_name when id = ".$id;
$db>setQuery($sql);
$fetchAllDatas = $db->getObjectList();
foreach ($fetchAllDatas as $fetchAllData)
{
if($fetchAllData->parent_id > 0)
{
$array[$fetchAllData->parent_id] = $fetchAllData->name;
$this->getData($fetchAllData->parent_id);
}
else
{
$array[$fetchAllData->parent_id] = $fetchAllData->name;
}
}
return $array;
}
の下には、今では
Array(
[0]=>name1
)
そのように返されますが、私は
Array(
[1]=>name3,
[0]=>name1
)
以下のようにしたい参照してください。
私は配列を再定義していることを知っていますif私たちは親を持っていますが、それをどう管理していますか 私はarray_push PHP関数を使用していますが、私の状態では動作しません。
「SELECT * from table_name id = some_id'」はこのクエリが動作していますか? –