Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
vadim-rejting

Подскажите как правильно работает данный код?

09.09.2013, 10:54. Показов 942. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Сайт состоит их бесконечного вложенных категорий. Есть id - идентификатор категории и ref_id идентификатор родительской категории.
Пишу скрипт вывода пути от главной, до страницы на которой находишься.
Пример:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?
 
mysql_connect('localhost', 'mysql', 'mysql');
mysql_select_db('rejting');
 
$n='1';//Непонятная мне фигня, но скорей всего из за того что переменная $n является глобальной, то там постоянно что то происходит.
 
$c='0';//Эта переменная нужна для поджсчёта количества выполненной функции a();
function a()//Функция a(); в ней всё и просиходит.
{
global $n,$c, $t;//Глобальные переменные, сам узнал о них неделю назад, по этому не совсем понимаю что это.
$c++;//Когда функция выполняется, то переменная $c увеличивается на 1, это возможно, так как она глобальная.
if($n){//Если переменная $n которая отвечает за идентификатор родительской категории больше нуля, то будет работать код описанный ниже.
if($c==1){$h='47';}else{$h=$n;}//Если это первое обращение к функции, то переменная $h будет иметь значение суперглобальной переменной $_GET['id'], которая в свою очередь является идентификатором категории в которой мы находимся.
//Если это второе обращение к функции, то переменная $h будет брать значение переменной $n из предыдущего выполнения функции, это возможно благодаря тому, что она глобальная.
    $r=mysql_query("SELECT * FROM category WHERE id =".$h."");//Это понятно
    $a=mysql_fetch_assoc($r);//Тут тоже
    $n=$a['ref_id'];//Переменной $n присваиваем идентификатор родительской категории.
    $t[$c]=$n;//Переменной $t со значением $c присваиваем идентификатор родительской категории.
    a();//Если есть идентификатор родительской категории то вызываем функцию a(); для поиска идентификатора родительской категории
}
}
a();//Вызов функции
$i=count($t)+1;//Переменная для цикла
while($i>1)//Цикл с выводом в противоположном порядке идентификаторов родительских категорий.
{
$i--;
echo $t[$i].'<br />';
}
 
?>
Я не совсем понимаю как он робит. Верно ли я описал как он работает? Если у вас есть возможность, то не могли бы вы написать свои комментарии для работы скрипта, в место моих.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.09.2013, 10:54
Ответы с готовыми решениями:

Как правильно написать данный C# код на C++?
Нужно перевести код программы с с# в с++ foreach (Control control in tableLayoutPanel1.Controls) { ...

Подскажите правильно ли работает код
Есть программа, в ней пользователь вводит массив А и после нажатия на кнопку вычисляется массив B по формуле bi =( ai + a2i+1 + a2i+2)/...

Как правильно прописать данный код программы?
#include &lt;iostream&gt; #include &lt;clocale&gt; #include &lt;cmath&gt; #include &lt;cstdlib&gt; using namespace std; double masA={0}; long H(double...

1
 Аватар для TAB
215 / 215 / 73
Регистрация: 12.03.2013
Сообщений: 485
09.09.2013, 13:22
Обход иерархии категорий от заданной (рекурсия), и не нужны никакие глобальные переменные:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function getBreadcrumbs($id) {
    $categories = array();
 
    $query  = "SELECT `ref_id` FROM `category` WHERE `id`=$id";
    $result = mysql_query($query);
    $parent = (int) mysql_result($result, 0);
    if ( $parent ) {
        $categories[]   = $parent;
        $categories     = array_merge($categories, getBreadcrumbs($parent));
    }
 
    return $categories;
}
mysql_connect('localhost', 'mysql', 'mysql');
mysql_select_db('rejting');
 
$id = $_GET['id'];
echo '<pre>' . implode("\n", array_reverse(getBreadcrumbs($id))) . '</pre>';
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.09.2013, 13:22
Помогаю со студенческими работами здесь

Подскажите как мне реализовать данный код
Подскажите как мне реализовать данный код? var menu = angular.element(document.querySelectorAll(&quot;.mane-menu__element&quot;));...

Подскажите как работает данный метод
Здравствуйте, подскажите пожалуйста, как работает данный метод и что в нем происходит, можете проставить комментарии? Пытаюсь...

Уважаемые знатоки, подскажите возможно ли как то упростить данный код
Суть в том, что количество и значения измерений (переменных fr и Tkip) каждый раз разное. А формулы в функциях каждый раз одинаковые. Можно...

Подскажите, не работает код, не могу понять почему - вроде бы все правильно
Доброго времени суток Есть задача - при клике на кнопку должен создаваться параграф в теле документа, в который добавляется значение...

Объясните как работает данный код
Просьба объяснить как работает данный код: class Movie { public readonly DateTime datetime;// дата сеанса public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru