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

Выборка категорий

06.03.2011, 02:01. Показов 1555. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые, что-то вообще не пойму есть проблема с ссылкой для категории.

данный код, который как я понял создает данную ссылку и делает запрос в базу на выборку.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
    // $this->hsc = 1 will htmlspecialchars cat name
 
    function make_cat_options($pid='0',$selected='',$depth=1,$not='')
    {
        global $cat_cache,$udb,$database,$admin;
        
        if ( !is_array($cat_cache) )
        {
            $sql = $udb->query('SELECT * FROM '.$database['cat'].' ORDER BY orders ASC, cid ASC');
            while ($row = $udb->fetch_array($sql))
            {
                //$row = $admin->strip_array($row);
                $cat_cache[$row['pid']][$row['cid']] = $row;
            }
        }
        
        $cache = $cat_cache;
 
        $xaccess = explode(",",$not);
            
        if(!isset($cache[$pid])) return;
        
        while (list($parent,$category) = each($cache[$pid]))
        {
            if ( $this->cattpl != '' )
            {
                $a .= str_replace( 
                                    array('{url}','{description}','{name}'),
                                    array( 
                                            $this->link_cat( $category[$this->sestype_cat()]),
                                            $admin->superhtmlentities($category['description']),
                                            str_repeat(' ',$depth-1)." ".$category['name']
                                        ),
                                
                                    $this->cattpl );
            }
            else
            {
                $category['name'] = $this->hsc == 1 ? $admin->superhtmlentities($category['name']) : $category['name'];
                
                unset($sel);
                if ($category['cid'] == $selected)
                {
                    $sel = 'selected="selected"';
                }               
                        
                if ( !in_array($category['cid'],$xaccess) )
                {
                    if ( $category['disabled'] != 1 )
                    {
                        $a .= '<option value="'.($this->cat_name == 1 ? $this->link_cat($category[$this->sestype_cat()]) : $category['cid']).'" '.$sel.'>';
                                            
                        if ($depth > 1)
                        { 
                            $a .= str_repeat("-",$depth-1)." ".$category['name']."</option>"."\n";
                        }
                        else
                        {
                            $a .= $category['name']."</option>";
                        }
                    }
                    else
                    {
                        $a .= '<optgroup label="'. str_repeat("-",$depth-1)." ".$category['name'].'">';
                        $closegroup = 1;
                    }
                }
            }
 
            $a .= $this->make_cat_options($category['cid'],$selected,$depth+1,$not);
 
            if ( $closegroup == 1 )
            {
                $a .= "</optgroup>\n";
            }
        } 
        
        $udb->free_result($sql);
        
        return $a;
    }
 
    function make_category_select($name,$selected='',$not='',$additional='')
    {
        global $udb,$admin,$evoLANG,$cat_cache;
        
        $this->parent_name = $this->parent_name != "" ? $this->parent_name : $evoLANG['noparent'];
    
        if ($this->onlyoptions != 1)
        {
            $a .= "<select name=\"".$name."\" ".$additional.">\n";
        }
        
        $a .=  '<option value=""> '.$this->parent_name." </option>\n";
        
 
        $a .= $this->make_cat_options('0',$selected,1,$not);
 
        if ($this->onlyoptions != 1)
        {
            $a .= '</select>';
        }
 
        return $a;
    }
Категория в бд выглядит так.
HTML5
1
2
cid  pid name  tname  ses  description style  meta_key meta_desc  usecomment  orders  apply_sub  disabled
1     0 One one  One   cat         2        One          One cat         1               1    0             0
а ссылка выглядит таким образом.

HTML5
1
http://сайт.ru/index.php?cat_id=
скрипт забывает дописывать в конце "cid" колонки.

В скрипте лично я не могу понять в чем загвоздка, может Вы подскажите?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.03.2011, 02:01
Ответы с готовыми решениями:

Выпадающее меню категорий, под категорий и под под категорий
Добрый день, прошу помощи Было так и всё работало, echo &quot;&lt;tr&gt;&lt;td class=gray align=\&quot;right\&quot;&gt;Выбирите категорию :...

Хранение категорий
Привет. Есть таблица с новостями и таблица с категориями. Изначально хранил список категорий к которым принадлежит новость в ячейке...

Вывод категорий
Вообще хочу реализовать вывод статей по категории, но я хз как сделать. Вообще можно через id Только я хочу что бы было например ...

2
 Аватар для StagnantIce
125 / 105 / 40
Регистрация: 06.03.2011
Сообщений: 334
06.03.2011, 10:11
PHP
1
2
3
4
5
6
7
8
9
 $a .= str_replace( 
                                                                        array('{url}','{description}','{name}'),
                                                                        array( 
                                                                                        $this->link_cat( $category[$this->sestype_cat()]),
                                                                                        $admin->superhtmlentities($category['description']),
                                                                                        str_repeat('&nbsp;',$depth-1)." ".$category['name']
                                                                                ),
                                                                
                                                                        $this->cattpl );

Хотелось бы посмотреть что за функция sestype_cat() и link_cat()
1
4 / 4 / 3
Регистрация: 28.07.2010
Сообщений: 186
07.03.2011, 06:22  [ТС]
sestype_cat()
PHP
1
2
3
4
5
6
function sestype_cat()
    {
        global $settings;
 
        return $settings['ses_type'] == 'adv' ? 'ses' : 'tname';
    }
link_cat($name)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    function link_cat($name)
    {
        global $settings;
        
        $id = intval($id);
 
        if ($settings['useses'] == 1)
        {
            return $settings['siteurl'].'category/'.$name.'/';
        }
        else
        {
            return $settings['siteurl'].'index.php?cat_id='.$name;
        }
    }
.$name <- вот это он и не добавляет в конце.

Добавлено через 10 часов 40 минут
Я так понял в ссылке нет id, так как в базе в столбце ses тоже пусто, значит при создавании категории в столбец ses, не заполняет значение, а должно по принципу AUTO_INCREMENT.

Добавлено через 27 минут
Вопрос, возможно ли сделать так чтобы в столбец `ses`, вставлялось одинаковое значение со столбцом `cid`, столбец `cid` у меня в базе AUTO_INCREMENT, а вот как сделать тоже самое для столбца ses?

Добавлено через 1 час 9 минут
все проблема не актуальна решил с помощью RewriteEngine On.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.03.2011, 06:22
Помогаю со студенческими работами здесь

Рекурсивный вывод категорий
Есть рекурсивная функция, которая выводит меню(категории и подкатегории). Как выровнить ее по горизонтали? Пытался сделать с Submenu(ul) но...

Выпадающий список категорий
Пишу на Денвере страницу отзывов. Внимание,вопрос.) Каким боком сделать так что бы,в выпадающем списке категорий,в базу заносились...

Правильный вывод категорий
Здравствуйте! Вывожу категории таким методом. $cat_id = isset( $_GET ) ? intval( $_GET ) : 0; $result_cat = mysql_query...

Вывод категорий и подкатегорий
Приветствую, господа! Нужна помощь! Есть код: while($result1 = mysql_fetch_array($choose_category)) { $disksCategory...

Сортировка категорий по столбцам
Здравствуйте! Есть массив категорий, приходит он в алфавитном порядке. Нужно его вывести в 3 столбца по 8 строк в алфавитном порядке...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru