![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| lemniscate |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
Доброго времени суток. Это моя первая попытка по освоению ООП. Решил наверное сразу за сложно взяться. И вот в чем проблема, вроде бы все работает, но вот функция
приводит к зависанию браузера. Не могу разобраться, быть может я вообще все не так делаю. Спасибо Собственно вот класс.
|
||||
|
|||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
если запрос возвращает хотя бы одну строку, то в этой строке получается вечный цикл. Почему -- попробуйте разобраться сами. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| K0T9I |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 20.11.2009 Репутация: 2 Всего: 2 |
да ладно зачем мучать человека
каждый вызов mysql_fetch_array обрабатывает ряд результата запроса и сдвигает внутренний указатель на следующий ряд, и так пока ряды не закончатся. mysql_query же получает эти ряды из базы и ставит внутренний указатель на начало. смотрим что у вас:
при первой итерации вызывается $this->m_query() (что есть ни что иное, как mysql_query), она производит запрос к базе и возвращает результат запроса, с указателем на первом ряду, mysql_fetch_array обрабатывает ряд и смещает указатель на следующий ряд, вроде пока все хорошо. но вот на следующей итерации опять вызывается $this->m_query(), которая снова посылает запрос к базе и возвращает результат, снова устанавливая указатель на первый ряд, mysql_fetch_array обрабатывает ряд и смещает указатель на следующий ряд... чувствуете? все колеблется между первым и вторым рядом, и так до бесконености. ps: тс, не обижайтесь, но пока здесь ООП нет, а есть функциональное программирование, только с помощью классов... Это сообщение отредактировал(а) K0T9I - 23.11.2009, 18:40 |
|||
|
||||
| Pitlord |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 31.10.2009 Репутация: 4 Всего: 7 |
Кстати, мне кажется разумным дескрипторы запросов вообще в коде (в смысле — за пределами класса) никак не светить, т.е. чтобы они внутри объекта и оставались. Каждый очередной запрос клал бы в стек свой дескриптор:
Остальные функции (num_rows(), affected_rows()) вызывать надо будет на соответствующем уровне. И все результаты запроса должны быть обязательно высбождены. К текущему треду это сильно не относится, понимаю, но хочется высказать свою мысль. Это сообщение отредактировал(а) Pitlord - 23.11.2009, 19:23 |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Не понимаю, к чему все эти дескрипторы-шмескрипторы.
Три метода, которые получают, соответственно, скаляр, строку и массив. Все. В рамках стандартного пхп скрипта этого достаточно. Городить этот стек, чтобы использовать его в единственном скрипте на все приложение - вот это я называю го.. неправильной архитектурой |
|||
|
||||
| Pitlord |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 31.10.2009 Репутация: 4 Всего: 7 |
Ипатьев, я Вас вообще не понимаю, Вы про что?
Добавлено через 11 минут и 55 секунд P.S. Правда с mysql_unbuffered_query() я, возможно, погорячился |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
1. Код ужасно оформлен. 2. Не соблюдены правила именования сущностей. 3. Переменные должны носить выразительные имена. 4. Класс должен быть переносим. Следовательно в корне неверно прописывать параметры конекта к СУБД внутри конструктора. 5. Кодировка! Используй исключительно UTF-8, иначе будет та же хрень, что и сейчас. 6. Уроаень абстракции. У тебя он нулевой - ты просто загнал функции в методы, при этом их реалдьно неудобно юзать. Т.е. тут нету смысла ООП. Исправляй. 7. Класс не несет смысла - является лишь НЕУДОБНОЙ оберткой над фйункциями. Исправляй. |
|||
|
||||
| lemniscate |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
Всем спасибо за ответы, есть к чему идти и стремится. Это мои первые шаги в ООП, и как оказались не в том направлении. Сегодня обязательно попробую закончить. Спасибо.
|
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |