|
 452.8 Кб |
|
| Подскажите где проблема почему не могу построить дерево иеархии
вот код
<?php
include("db.php");
?>
<link rel="StyleSheet" href="dtree.css" type="text/css" />
<script type="text/javascript" src="dtree.js"></script>
<div class="dtree">
<p><a href="javascript: d.openAll();">Открыть все</a> | <a href="javascript: d.closeAll();">Закрыть все</a></p>
<script type="text/javascript">
<!--
d = new dTree('d');
d.add(0,-1,'Классы запчастей');
<?
$typ=$_GET['id'];
$query = "select * from kat_tg WHERE TYP=$typ";
$result=mysql_query($query);
if(!$result) exit("Ошибка - ".mysql_error());
if(mysql_num_rows($result))
{
while($data=mysql_fetch_array($result))
{
$gen=$data['GEN'];
$query1 = "select * from kat_gen WHERE GEN=$gen";
$result1=mysql_query($query1);
if(!$result1) exit("Ошибка - ".mysql_error());
if(mysql_num_rows($result1))
{
while($data1=mysql_fetch_array($result1))
{
$gru=$data1['GRU'];
$query2 = "select * from kat_gruc WHERE GRUC1=$gru and GRU=$gru";
$result2=mysql_query($query2);
if(!$result2) exit("Ошибка - ".mysql_error());
if(mysql_num_rows($result2))
{
while($data2=mysql_fetch_array($result2))
{
$gru_gru2=$data2['GRU_GRU'];
$nazva2=$data2['GRUNAZWA'];
}
if($gru_gru2>0){
$query3 = "select * from kat_gruc WHERE GRUC1=$gru and GRU=$gru_gru2";
$result3=mysql_query($query3);
if(!$result3) exit("Ошибка - ".mysql_error());
if(mysql_num_rows($result3))
{
while($data3=mysql_fetch_array($result3))
{
$gru_gru3=$data3['GRU_GRU'];
$nazva3=$data3['GRUNAZWA'];
if($gru_gru3>0){
$gru_gru3_3=$gru_gru3;
}else{$gru_gru3_3=$gru_gru2;}
}
}else{
$nazva3=$nazva2;
$gru_gru3_3=0;}
if($gru_gru3_3>0){
$query4 = "select * from kat_gruc WHERE GRUC1=$gru and GRU=$gru_gru3_3";
$result4=mysql_query($query4);
if(!$result4) exit("Ошибка - ".mysql_error());
if(mysql_num_rows($result4))
{
while($data4=mysql_fetch_array($result4))
{
$gru_gru4=$data4['GRU_GRU'];
$nazva4=$data4['GRUNAZWA'];
if($gru_gru4>0){
$gru_gru4_4=$gru_gru4;
}else{$gru_gru4_4=$gru_gru3_3;}
}
}else{
$nazva4=$nazva3;
$gru_gru4_4+=0;}
if($gru_gru4_4>0){
$query5 = "select * from kat_gruc WHERE GRUC1=$gru and GRU=$gru_gru4_4 ";
$result5=mysql_query($query5);
if(!$result5) exit("Ошибка - ".mysql_error());
if(mysql_num_rows($result5))
{
while($data5=mysql_fetch_array($result5))
{
$gru_gru5=$data5['GRU_GRU'];
$nazva5=$data5['GRUNAZWA'];
if($gru_gru5>0){
$gru_gru5_5=$gru_gru5;
}else{$gru_gru5_5=0;}
}
}else{
$nazva5=$nazva4;
$gru_gru5_5=0;}
?>
d.add(<?=$gru_gru4_4?>,<?=$gru_gru5_5?>,'<?=$nazva4?>','example01.html');
//d.add(<?=$gru_gru3_3?>,<?=$gru_gru4_4?>,'<?=$nazva4?>','example01.html');
// d.add(<?=$gru_gru2?>,<?=$gru_gru3_3?>,'<?=$nazva3?>','example01.html');
d.add(<?=$gru?>,<?=$gru_gru2?>,'<?=$nazva2?>','example01.html');
<?
}
}
}
}
}
}
}
}
?>
document.write(d);
//-->
</script>
</div>
<?
|
Пример даных прикрепил в виде графического файла!! | |
|
|
|
|
|
|
|
для: alex_fear
(24.02.2011 в 18:05)
| | что-то страшное...не нужно столько запросов. нужен 1 запрос к базе данных на выборку всех записей из таблицы. складываете это все дело в массив а потом уже работаете с массивом, и строите свою иерархию в зависимости от значений элементов массива | |
|
|
|
|
|
|
|
для: psychomc
(24.02.2011 в 18:12)
| | а как сделать 1 запрос? И поместить это в масив? | |
|
|
|
|
|
|
|
для: alex_fear
(24.02.2011 в 18:05)
| | В целом смысл простой собираем список родительских элементов, а потом уже собираем все дочерние элементы.
Варианта два, либо рекурсией, либо собирать все по очереди в массив.
И еще зачем вам три последних столбца? в 9-м и 11-м столбце записи вообще идентичные | |
|
|
|
|
|
|
|
для: ONYX
(25.02.2011 в 02:25)
| | Такой вопрос как отфильтровать в масиве одинаковые данные?
Тоесть в масив записывается :
1-кот
2-собака
3-лошадь
1-кот
3-лошадь
цифры и текст это все переменные
нужно получать с мпсива всего
1-кот
2-собака
3-лошадь и отсортировать это по первой переменной! | |
|
|
|
|
|
|
|
для: alex_fear
(25.02.2011 в 10:19)
| | Убрать из массива повторяющиеся значения
И вообще php.ru полно полезной документации | |
|
|
|