Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Передача параметра из функции

Сообщения:  [1-10]    [11-20]   [21-30]  [31-31] 

 
 автор: fsn   (22.10.2008 в 01:56)   письмо автору
 
   для: Trianon   (22.10.2008 в 01:37)
 

Огромное спасибо

  Ответить  
 
 автор: 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:11)   письмо автору
 
   для: 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   (22.10.2008 в 01:04)   письмо автору
 
   для: 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:47)   письмо автору
 
   для: fsn   (21.10.2008 в 12:41)
 

Вернее не так $id_otdel, который передается в функцию-это родитель. А в коде надо проверить id_otdel, чтобы он являлся потомком.

  Ответить  
 
 автор: fsn   (21.10.2008 в 12:41)   письмо автору
 
   для: Trianon   (21.10.2008 в 12:31)
 

Мне наименования узлов по большому счету не нужны. Мне надо проверить параметр $id_otdel, котороый передается в функцию на наличие его в полученном массиве, который будет состоять из id_otdel. Наименования я применял в примере, чтобы не запутаться в числах.

  Ответить  
 
 автор: Trianon   (21.10.2008 в 12:31)   письмо автору
 
   для: Trianon   (21.10.2008 в 12:27)
 

Имеет смысл для этого применить php-функцию implode()

  Ответить  
 
 автор: fsn   (21.10.2008 в 12:30)   письмо автору
 
   для: Trianon   (21.10.2008 в 12:27)
 

Понял

  Ответить  
 
 автор: 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)

  Ответить  
 
 автор: fsn   (21.10.2008 в 12:24)   письмо автору
 
   для: Trianon   (21.10.2008 в 12:07)
 

Как правильно построить запрос с WHERE IN?
$sql= "SELECT * FROM otdel WHERE id_parent = $id_otdel[] IN $id_otdel"
$id_otdel - список.
Если неправильно напишите пожалуйста.

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]  [31-31] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования