За последние 24 часа нас посетили 22080 программистов и 1673 робота. Сейчас ищут 1848 программистов ...

Не заносится информация в БД

Тема в разделе "Прочие вопросы по PHP", создана пользователем shmel, 30 май 2006.

  1. shmel

    shmel Активный пользователь

    С нами с:
    30 май 2006
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте. Возникла такая проблема, результат, получаемый из function page_par_id не заносится в БД, как мне кажется это из-за функции echo, т.к если переменной $put2 присвоить что-нибудь другое, а не вызов функции, то все ок, хотя функция возвращает результат, проверял выводом в браузер после запроса в БД. Пытался воспользоваться return но, он возвращает результат только передоного id, а должно возвращаться дерево(типа: page1/page2/page3/и.т.д). Подскажите, как можно выйти из данной ситуации.
    PHP:
    1. <?  
    2. function page_par_id ($ppi)  
    3. {  
    4.    $msq = mysql_query("select page_id, page_parent_id, page_name from page where page_id = '".$ppi."' order by page_id asc");  
    5.    while ($ww = mysql_fetch_array($msq)) {  
    6.    page_par_id ($ww['page_parent_id']);  
    7.    echo $ww['page_name']."/";
    8.    }  
    9. }  
    10.  
    11. if ($_GET['tip']=='edit') {  
    12. // PUT  
    13. if ($_POST['page_parent_id']!=0)  
    14. {  
    15.   $put2 = page_par_id($_GET['page_id']);  
    16. }  
    17. else  
    18. {  
    19. $put2 = $_POST['page_name'];  
    20. }  
    21. // END PUT  
    22. $query = "UPDATE page SET page_parent_id='".$page_parent_id."', temp_id='".$temp_id."', sait_id='".$sait_id."', put='".$put2."', page_name='".$page_name."',  
    23.          page_men_name='".$page_men_name."', page_title='".$page_title."', page_description='".$page_description."', page_keywords='".$page_keywords."',  
    24.          doc_id='".$doc_id."', page_doc_link='".$page_doc_link."', lang_id='".$lang_id."' WHERE page_id =".$_GET['page_id'].";";  
    25. }  
    26. // --------------------------------------------------------  
    27. if(@mysql_query($query)) {  
    28. print "<html><head>\n";  
    29. echo $put2;  // Для проверки выводится ли вообще результат! Выводит  
    30. //print "<meta HTTP-EQUIV='refresh' content='0; url=../../admin/struktura.php'\n";  
    31. print "</html></head>\n";  
    32. exit();  
    33. }
    34. ?>
     
  2. olo

    olo Активный пользователь

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    echo выводит строку, она не возвращает ее из функции. чтобы вывелось дерево нужно сделать например так:
    Код (Text):
    1.  
    2. function page_par_id ($ppi)
    3. {
    4.    global $return_string;
    5.    .................
    6. //   echo $ww['page_name']."/";
    7.    $return_string .= $ww['page_name']."/";
    8.    .................
    9. }
    или так:
    Код (Text):
    1.  
    2. function page_par_id ($ppi,$return_string)
    3. {
    4.    .................
    5. //   page_par_id ($ww['page_parent_id']);  
    6.    $return_string .= page_par_id ($ww['page_parent_id'],$return_string);  
    7. //   echo $ww['page_name']."/";
    8.    $return_string .= $ww['page_name']."/";
    9.    }
    10.    return $return_string;
    11. }
     
  3. shmel

    shmel Активный пользователь

    С нами с:
    30 май 2006
    Сообщения:
    2
    Симпатии:
    0
    Спасибо большое, 1 вариант подошол.