|
|
|
|
|
для: cheops
(30.05.2006 в 12:54)
| | Спасибо большое. | |
|
|
|
|
|
|
|
для: shmel
(30.05.2006 в 10:59)
| | Массив $ss следует объявить глобальным
<?php
function page_par_id ($ppi)
{
global $ss;
$msq = mysql_query("select page_id, page_parent_id, page_name from page where page_id = '".$ppi."' order by page_id asc");
while ($ww = mysql_fetch_array($msq)) {
page_par_id ($ww['page_parent_id']);
$ss[] = $ww['page_name'];
}
return $ss;
}
echo count(page_par_id(17)); // Возвращает 1, а должен 2
?>
|
| |
|
|
|
|
|
|
|
для: shmel
(29.05.2006 в 13:13)
| | Всетаки это из-за вызова echo, переписал в таком виде
function page_par_id ($ppi)
{
$msq = mysql_query("select page_id, page_parent_id, page_name from page where page_id = '".$ppi."' order by page_id asc");
while ($ww = mysql_fetch_array($msq)) {
page_par_id ($ww['page_parent_id']);
$ss[] = $ww['page_name'];
}
return $ss;
}
echo count(page_par_id(17)); // Возвращает 1, а должен 2
|
Но почему-то возвращается 1, а по идее должно быть 2, т.к в цикле вызывается page_par_id ($ww['page_parent_id']); . Помогите подправить код, чтоб он выводил дерево. | |
|
|
|
|
|
|
|
для: cheops
(29.05.2006 в 13:00)
| |
<?
if ($_GET['tip']=='edit') {
// PUT
if ($_POST['page_parent_id']!=0)
{
$put2 = page_par_id($_GET['page_id']);
}
else
{
$put2 = $_POST['page_name'];
}
// END PUT
$query = "UPDATE page SET page_parent_id='".$page_parent_id."', temp_id='".$temp_id."', sait_id='".$sait_id."', put='".$put2."', page_name='".$page_name."',
page_men_name='".$page_men_name."', page_title='".$page_title."', page_description='".$page_description."', page_keywords='".$page_keywords."',
doc_id='".$doc_id."', page_doc_link='".$page_doc_link."', lang_id='".$lang_id."' WHERE page_id =".$_GET['page_id'].";";
}
// --------------------------------------------------------
if(@mysql_query($query)) {
print "<html><head>\n";
echo $put2; // Для проверки выводится ли вообще результат! Выводит sdf/werwe/
//print "<meta HTTP-EQUIV='refresh' content='0; url=../../admin/struktura.php'\n";
print "</html></head>\n";
exit();
}
?>
|
Да функция срабатывает, а вот в БД незаносится информация. если к примеру сделать так
if ($_POST['page_parent_id']!=0)
{
$put2 = "sssss/ssss/sss/";
}
|
то это заносится в БД., хотя в преведущем случае функция срабатывает, и в участке кода перенаправления выводит этот результат.
if(@mysql_query($query)) {
print "<html><head>\n";
echo $put2; // Для проверки выводится ли вообще результат! Выводит sdf/werwe/
//print "<meta HTTP-EQUIV='refresh' content='0; url=../../admin/struktura.php'\n";
print "</html></head>\n";
exit();
}
|
| |
|
|
|
|
|
|
|
для: shmel
(29.05.2006 в 12:37)
| | Сразу после вызова
<?php
$ww = page_par_id ($ppi);
?>
|
Выведите содержимое $ww - есть в нём что-нибудь? | |
|
|
|
|
|
|
|
для: cheops
(19.05.2006 в 23:14)
| |
function page_par_id ($ppi)
{
$msq = mysql_query("select page_id, page_parent_id, page_name from page where page_id = '".$ppi."' order by page_id asc");
while ($ww = mysql_fetch_array($msq)) {
page_par_id ($ww['page_parent_id']);
echo $ww['page_name']."/";
}
}
|
Если поставить
echo $ww['page_name']."/";
| после вызова функции, то последовательность будет нужной. Теперь возникла другая проблема, мне надо занести это в БД.
Происходит это примерно так:
$ww = page_par_id ($ppi);
mysql_query("insert into page values (ww='".$ww."')");
|
Но в БД незаносится информация, как я понял это из-за вызова в вункции echo.
Попытался использовать return, да вот только return возвращает 1 результат(page3), передонного $ppi, а должно возвращаться дерево ( page1/page2/page3/).
Подскажите как можно решить проблему с занисением в БД,. | |
|
|
|
|
|
|
|
для: shmel
(19.05.2006 в 15:28)
| | Вместо
<?php
//echo "Парент ИД-".$ww['page_parent_id']." ИД-".$ww['page_id']."<br>";
?>
|
испльзуйте оператор return - это позволит изменить вам порядок возвращения ссылок. Вызов в результате будет выглядеть не
<?php
page_par_id(14);
?>
|
а
<?php
echo page_par_id(14);
?>
|
| |
|
|
|
|
|
|
| Здраствуйте.
Есть функция которая выводит такую последовательность:
В БД есть 2 поля id и parent_id
1
1.2
2.1
1.3
<?
function page_par_id_q ($ppi)
{
$msq = mysql_query("select page_parent_id, page_id from page where page_parent_id = '".$ppi."'");
while ($ww = mysql_fetch_array($msq)) {
echo "Парент ИД-".$ww['page_parent_id']." ИД-".$ww['page_id']."<br>";
page_par_id_q ($ww['page_id']);
}
}
page_par_id_q(0);
?>
|
И есть обратная функция: т.е я ей передаю ид страници и она выводит связи этой страници до parent_id = 0, но проблема в том что она выводит это не в том порядке что мне надо(сначало ID переданной страници, потом id стр. связаной с переданной parent_id, и в самом конце стр. с parent_id=0, а мне надо это в обратном порядке со страници parent_id=0, Первая функция не подходит т.к страниц с парент_ид=0 может быть сколько угодно. Подскажите как можно это перевернуть.
<?
function page_par_id ($ppi)
{
$msq = mysql_query("select page_id, page_parent_id, page_name from page where page_id = '".$ppi."' order by page_id asc");
while ($ww = mysql_fetch_array($msq)) {
echo $ww['page_name']."_";
//echo "Парент ИД-".$ww['page_parent_id']." ИД-".$ww['page_id']."<br>";
page_par_id ($ww['page_parent_id']);
}
}
page_par_id(14);
?>
|
| |
|
|
|
|