|
|
|
|
|
для: Trianon
(22.10.2008 в 01:37)
| | Огромное спасибо | |
|
|
|
|
|
|
|
для: fsn
(22.10.2008 в 01:11)
| |
<?
function User($id)
{
list1 = array();
list2 = array($id);
do
{
$sql = "SELECT id_otdel FROM otdel WHERE id_parent IN (".implode(',',$list2).")";
for($list2 = array(), $res = mysql_query($sql); $row = mysql_fetch_row($res); $list2[] = $row[0])
$list1[] = $row[0];
} while(! empty($list2));
return $list1;
}
|
| |
|
|
|
|
|
|
|
для: fsn
(22.10.2008 в 01:04)
| | Написал код, где $id1 -первый список, $id2-второй
function User($id_otdel)
{
$id2=array();
$sSQL = "SELECT * FROM otdel WHERE id_parent=".$id_otdel;
$result=mysql_query($sSQL);
while($row=mysql_fetch_array($result))
{
$id2[]=$row['id_otdel'];
}
$id1=array();
do {
$sSQL1="SELECT * FROM otdel WHERE id_parent IN(" . implode(',', $id2) . ")";
$result1 = mysql_query($sSQL1);
while($row1=mysql_fetch_array($result1))
{
$id1[]=$row1['id_otdel'];
}
} while($id1 != NULL)
$id=array_merge($id2,$id1);
return $id;
}
|
Пишет ошибку
Parse error: parse error, unexpected T_VARIABLE, expecting ';' in ..........line23 | |
|
|
|
|
|
|
|
для: fsn
(21.10.2008 в 12:47)
| | Ну никак не могу построить код по такой структуре
список1 = array()
список2 = array(id)
выполнять
список2 = результат SQL-запроса потомков узлов из списка2;
добавить список2 к списку1
пока список2 не пуст
вернуть список1
|
Может чуть подробнее подскажете?
И не понятно
список2 = результат SQL-запроса потомков узлов из списка2;
Тут нет опечатки?
Цикл с постусловием? | |
|
|
|
|
|
|
|
для: fsn
(21.10.2008 в 12:41)
| | Вернее не так $id_otdel, который передается в функцию-это родитель. А в коде надо проверить id_otdel, чтобы он являлся потомком. | |
|
|
|
|
|
|
|
для: Trianon
(21.10.2008 в 12:31)
| | Мне наименования узлов по большому счету не нужны. Мне надо проверить параметр $id_otdel, котороый передается в функцию на наличие его в полученном массиве, который будет состоять из id_otdel. Наименования я применял в примере, чтобы не запутаться в числах. | |
|
|
|
|
|
|
|
для: Trianon
(21.10.2008 в 12:27)
| | Имеет смысл для этого применить php-функцию implode() | |
|
|
|
|
|
|
|
для: Trianon
(21.10.2008 в 12:27)
| | Понял | |
|
|
|
|
|
|
|
для: fsn
(21.10.2008 в 12:24)
| | если $id_otdel действительно список, к примеру, $id_otdel = "(1,5,15)"; то именно так и построить.
UPD. Вы меняете пост с вопросом после отправки. Тогда не так.
В запросе должна оказаться строка вида WHERE id_parent IN (1,5,15) | |
|
|
|
|
|
|
|
для: Trianon
(21.10.2008 в 12:07)
| | Как правильно построить запрос с WHERE IN?
$sql= "SELECT * FROM otdel WHERE id_parent = $id_otdel[] IN $id_otdel"
$id_otdel - список.
Если неправильно напишите пожалуйста. | |
|
|
|
|