私が遭遇したさまざまな例を使用して、データベースからデータが取り込まれるツリービューを作成する方法を見つけようとしていますが、これまでのところ成功していません。
私のデータベースは次のように構成されています。
id | parent_id | title | Urgency
(緊急度はまだ実装されていません)
最終結果は、緊急度の値が各項目に使用される画像を決定するツリービューを生成する必要があります。
私が最近利用しようとしているコードは次のとおりです。
<hmtl>
<body>
<?php
function get_children($parent, $level = 1)
{
$result = mysql_query('SELECT * FROM treeview_items WHERE parent_id = '.$parent);
$result2 = mysql_fetch_array($result, MYSQL_ASSOC);
#for avoiding some errors
if(mysql_num_rows($result) > 0)
#start the list
echo '<ul>';
foreach($result2 as $row) {
#print the item, you can also make links out of these
echo '<li>'.$row['title'].'</li>';
#this is similar to our last code
#this function calls it self, so its recursive
get_children($row['id'], $level+1);
}
#close the list
echo '</ul>';
}
mysql_connect('localhost', 'root');
mysql_select_db('test');
$result = mysql_query('SELECT * FROM treeview_items');
$result2 = mysql_fetch_array($result, MYSQL_ASSOC);
#for avoiding some errors
if(mysql_num_rows($result) > 0) {
#start the list
echo '<ul>';
foreach($result2 as $row) {
#print the item, you can also make links out of these
echo '<li>'.$row['title'].'</li>';
#recursive function(made in next step) for getting all the subs by passing
id of main item
get_children($row['id']);
}
#end the list
echo '</ul>';
#some message if the database is empty
}
else echo 'No Items';
#clear the memory
mysql_free_result($result);
?>
</body>
<html>
基本的に、私が持っているコードは機能しません。どうすれば修正できますか?
編集
いくつかのエラーを修正するためにコードの一部を変更しました。
- 1
- 2
- 5
警告: C:\Program Files\EasyPHP-5.3.9\www\test.php の 13 行目の foreach() に無効な引数が指定されました
中止するまで100回繰り返します。コード内の両方が同じであるため、理由はわかりませんforeach()
が、関数内のものは機能しません。