Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 4

ошибка в объявлении переменной, что может быть не так?

23.03.2013, 00:34. Показов 1025. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

У меня есть таблица

id | name | description | parent_id | type
Возник вопрос вот в чем. Пользователь выбирает на странице букву алфавита, допустим русский:

А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
нужно, что-бы mysql отсортировала "name" именно по выбранной букве. Если буква не выбрана, то выводи все записи.

Есть класс

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
class mainMenu extends mysql 
{
private $category_arr = array();
public $sort;
 
    public function __construct($s=NULL)
    {
        $this->sort = $s;
        if($this->sort==NULL)
        {
        $this->category_arr = $this->_getCategory();
        } 
        else 
        {
           $this->category_arr = $this->_getCategory_sort();
        }
    }
 
    private function _getCategory() 
    {
        $query = $this->query("SELECT * FROM `category` WHERE `type` = '0'");
 
        $return = array();
        while($arr = $this->fetch($query))
         {
            $return[$arr['parent_id']][] = $arr;
         }
 
        return $return;
    }
    private function _getCategory_sort()
    {
        $query=$this->query("SELECT * FROM `category` WHERE LEFT(`name`,1) = '".mysql_real_escape_string($this->sort)."' ");
 
        $return = array();
        while($arr = $this->fetch($query))
         {
            $return[$arr['parent_id']][] = $arr;
         }
 
        return $return;
    }
 
    public function setCatalog($parent_id)
    {
        $category = array();
        if(isset($this->category_arr[$parent_id]))
         {
            foreach($this->category_arr[$parent_id] as $value)
              {
$category[] = array('name'=>$value['name'],'description'=>$value['description'],'type'=>$value['type'],'id'=>$value['id']);
              }
         }
         return $category;
    }
 
}
Как видно, передаю в __construct() выбранную букву, если буква не выбрана, то выводим все записи, если выбрана, то только то что сортируем. Но почему то $s - NULL всегда... Битый час сижу, понять не могу, что не так...

P.S За корявость кода не судить, я только учусь! Спасибо!

Добавлено через 7 минут
объявляю как $a = new mainMenu($_GET['alphabet']);
// переменные не проверяю, как пример идет

__construct($s=NULL)
NULL для того, чтобы в другом запросе при выводе дочерних элементов, не возникало ошибок. там сортировки нету
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.03.2013, 00:34
Ответы с готовыми решениями:

Что может быть не так с ПК?
Всем доброго времени суток. Суть проблемы такова: не сидел за ПК около пары месяцев, пока был в другом городе, все работало отлично,...

Что может быть не так?
В функции прорисовки вызываю: CDC MemDC; rez=MemDC.CreateCompatibleDC(&m_memDC); в какой то момент мне начинает возвращаться 0. ...

что может быть не так?
Создаю программу, сделала переходы по формам. с первой на вторую, на третью и так далее. всего 5 форм. с тех форм наоборот делала переход...

5
 Аватар для Svid_off
82 / 82 / 38
Регистрация: 15.03.2013
Сообщений: 280
23.03.2013, 00:45
А уверены. что что-то приходит? Лучше глянуть что
А что при этом происходит:
PHP
1
$temp= new mainMenu ('а');
?
0
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 4
23.03.2013, 00:49  [ТС]
Цитата Сообщение от Svid_off Посмотреть сообщение
А уверены. что что-то приходит? Лучше глянуть что
А что при этом происходит:
PHP
1
$temp= new mainMenu ('а');
?
Тьфу...так работает.

Хм...а почему тогда так...
test.php?sort=А - запрос, var_dump($_GET['sort']) показал NULL шо за дела...
0
 Аватар для Svid_off
82 / 82 / 38
Регистрация: 15.03.2013
Сообщений: 280
23.03.2013, 00:53
Да не должен он вроде так показывать
Может файл по другому называется?
0
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 4
23.03.2013, 01:00  [ТС]
Цитата Сообщение от Svid_off Посмотреть сообщение
Да не должен он вроде так показывать
Может файл по другому называется?
да файл то не причем=(

вот запрос на странице:
$sort = isset($_GET['sort']) ? $_GET['sort']:NULL;
//$tree = new mainMenu('А'); // старт класса вывода дерева - работает
$tree = new mainMenu($sort);
var_dump($sort); // NULL =(

Ничего не понимаю(

Добавлено через 3 минуты
Все, заработало...

url был вида /test/?sort=A
поэтому не выдавал всей картины.
запустил без mod_rewrite , все заработало.

Интересно, с чем это связано :\
0
 Аватар для Svid_off
82 / 82 / 38
Регистрация: 15.03.2013
Сообщений: 280
23.03.2013, 01:00
Просто посмотрите что приходит в $_GET['sort'] эхом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.03.2013, 01:00
Помогаю со студенческими работами здесь

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

GF285 что может быть не так?
Купила сегодня компьютер новый. Столкнулась с проблемой, что изображение в различных приложениях бывает размыто и неествественного...

Что может быть не так в коде?
Хочу сделать окно всплывашку, когда пользователь заходит на сайт. Код вроде верный, jquery.min подключен, но форма не работает. В чем...

Что может быть не так в регулярном выражении
public void HtmlRegex(string html) { string pattern = @"+,\W+,\W+,\S+"; Regex rgx = new...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru