[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: деревовидный вывод из MySQL
stff93
Уважаемые, Гуру, помогите пожалуйста с задачей.
Вожусь и ничего сам придумать не могу, оч надеюсь на Вашу отзывчиврсть, благодарность 2500р. за подправленый рабочий скрипт.
Сейчас так:
Логинимся:
<?php
include_once('include/config.php');
include_once('include/function.php');
$id_user = $_POST['id_user'];
$password = md5($_POST['password']);
$select = mysql_query("SELECT * FROM ntvusers WHERE id_user = '$id_user'")or die(mysql_error());
$ds = mysql_fetch_assoc($select);
echo "<br />";
if($id_user == $ds['id_user'] && $password == $ds['password']){
//Если галочка стоит запоминаем юзера
if($_POST['sess'] == "on"){
$_SESSION['id'] = $ds['id_user'];
$_COOKIE['id'] = $_SESSION['id'];
//Перекидываем Юзера на главную
?>
<script>document.location.href="index.php";</script>
<?php
}else{
$_SESSION['id'] = $ds['id_user'];
?>
<script>document.location.href="index.php";</script>
<?php
}
}
else{echo exit('Введённые Вами данные не действительны');}
?>

В config.php лежит связь с MySQL её описывать нет смысла
После чего сам index.php:

<?php include_once('include/config.php');?>
<?php
include_once('include/function.php');?>
<?php

if (!$_SESSION['id']) {
?>
<?php
include_once('tmp/index.tpl');
}else{
$id = $_SESSION['id'];
$select = mysql_query("SELECT * FROM ntvusers WHERE id_user='$id'");
$row = mysql_fetch_assoc($select);
include_once('tmp/reg_index.tpl');
if($_POST['del']){delete_acc($_SESSION['id']);
?>
<?php

exit;
}
else{ echo "";}
}

?>

А далее вывод tmp/reg_index.tpl как html страницу с деревом юзеров:

<head>

<title>
Ваш номер входа <?=$row['id_user'];?>, Ваше имя <?=$row['name'];?></title>

<style
type="text/css">
.treeview { padding: 0; clear: both; font-family: Arial, sans-serif; width: 100%; }
.treeview * { font-size: 100.1%; }
.treeview ul
{
overflow: hidden; width: 100%; margin: 0; padding: 0 0 1.5em 0;
list-style-type: none;
}
.treeview ul ul { overflow: visible; width: auto; margin: 0 0 0 0; padding: 0 0 0 0.75em; }
/* класс для ul после которых нет li в родительских ветках */
.treeview ul.l { border-left: 1px solid; margin-left: -1px; }
.treeview li.cl ul { display: none; }
.treeview li { margin: 0; padding: 0; }
.treeview li li { margin: 0 0 0 0.5em; border-left: 1px dotted; padding: 0; }
.treeview li div { position: relative; height: 1.5em; min-height: 16px; //height: 1.3em; }
.treeview li li div { border-bottom: 1px dotted; }
.treeview li p
{
position: absolute; z-index: 1; top: 0.8em; //top: 0.65em; left: 1.75em;
width: 100%; margin: 0; border-bottom: 1px dashed; padding: 0;
}
.treeview a { padding: 0.1em 0.2em; white-space: nowrap; //height: 1px; }
.treeview img.i
{
border-right: 2px solid; border-bottom: 0.5em solid;
margin-bottom: -0.5em; vertical-align: middle;
}
.treeview a.sc
{
position: absolute; top: 0.06em;
margin-left: -1em; padding: 0; text-decoration: none;
}

/* colors */
.treeview li p,
.treeview img.i,
.treeview .sc
{ background: #fafafa; }
.treeview ul.l,
.treeview li p,
.treeview img.i
{ border-color: #000000; }
.treeview ul li li,
.treeview ul li li div
{ border-color: #000000; }
.treeview a,
.treeview a.sc,
.treeview a.sc:hover
{ color: #000000; }
.treeview a:hover
{ color: #cc0000; }
</style>
<script
type="text/javascript">
function
UnHide( eThis ){
if( eThis.innerHTML.charCodeAt(0) == 9658 ){
eThis.innerHTML = '▼'
eThis.parentNode.parentNode.parentNode.className = '';
}else{
eThis.innerHTML = '►'
eThis.parentNode.parentNode.parentNode.className = 'cl';
}
return false;
}
</script>
</head>


<body>
<div
width="1800" border="2" align="left" class="treeview"> <!-- Начало Дерева -->
<ul>
<li>
<div><p><a
href="#" class="sc" onclick="return UnHide(this)"></a> <B><font color="red" >Лидер группы</font></B>: № <?=$row['id_user'];?> : <?=$row['name'];?>;</p></div>
<ul><li><div><p><a
href="#" class="sc" onclick="return UnHide(this)"></a>№ и Имя того кто по ветке в право</p></div> <!--Правая ветка-->
<ul><li><div><p><a href="#" class="sc" onclick="return UnHide(this)"></a>№ и Имя того кто по ветке в право </p></div> <!--Правая ветка-->
</ul> <!--Конец правых веток следующая будет под верхней-->

<li><div><p><a href="#" class="sc" onclick="return UnHide(this)"></a>№ и Имя того кто по ветке вниз</p></div> <!--Нижняя ветка-->
<ul><li><div><p><a href="#" class="sc" onclick="return UnHide(this)"></a>№ и Имя того кто по ветке в право </p></div> <!--Правая ветка-->
</ul>
<ul><li><div><p><a
href="#" class="sc" onclick="return UnHide(this)"></a>№ и Имя того кто по ветке в право</p></div> <!--Правая ветка-->
</li>
</ul>
</li>
</ul>
</div>

</body>
</html>


В PMA такие ячейки: id_user , name , n_jr (это номер младшего юзера), ну и password (который нужен только для входа)
Задача у меня такова:
При входе юзера по id например 8, дерево должно выстроится по номерам младших так, чтобы №8 был лидером (он уже в "корне" (вверху) дерева),
а все младшие в иерархию один под одним опираясь на n_jr.
Если есть у кого то младший, то он уйдет вниз-вправо (согласно скрипта дерева в reg_index.tpl) и так сколько бы их небыло в PMA.

К примеру: id_user , name , n_jr
8, Федя, 15
15, Вася, 24,25
24, Ваня, 27, 31, 40
27, Коля, 30
31, Галя, 35
40, Люба, 44
25, Лёша, 49
...итд...

Я новичек, мне нужен исправленый (вышеприведенный) скрипт, а я потом его переберу (оформлю) как нужно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.