Титла: Проблем с фукнция при изваждане на резултата: Публикувано от: RedIce в Apr 10, 2010, 01:57 Здравейте, не съм от най-напредлните в PHP програмирането, но горедолу с малко ровичкане се справям. Направих си едно новинарско модулче, което си работи без проблеми, но ако реша да му дам сортиране и зацикля. Мога да пренапиша нещата и да ги направя по малко по хамалски начин със няколко отделни файла но се дразня защо се получава така.
Проблема ми е в следната функция Код
Идеята е следната, Чрез файла news_module_tables.php се обработват нещата и се извежда информацията, идеята е ако се направи заяка към news модула извежда само списък с новините и кратак текст, или ако се изпрати ИД-то на новината да извежда пълната новина на отделна страничка. Всичко работи ОК, до момента в който реша да направя следната промяна: Код
И ми излиза следната грешка: Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in news_module.php on line xx, което в случая е следния ред: $num_rows = mysql_numrows($result); Някакви идеи? Титла: Re: Проблем с фукнция при изваждане на резултата: Публикувано от: VladSun в Apr 10, 2010, 02:23 1. Дай едно
Код
2. Там където изпълняваш самата заявка дай Код
3. Това Код не ми харесва - ще работи само и единствено, ако имаш define('limit_news', '.....') някъде по-горе. Титла: Re: Проблем с фукнция при изваждане на резултата: Публикувано от: RedIce в Apr 10, 2010, 11:31 Имам файл в който се намират почти всички настройки за самия сайт и в него съм дефинирал limit_news ; Идеята ми е все пак като реша да правя някакви промени да не обикалям от файл на файл :)
Но като се загледах си открих грешката... Реших че проблема не ми е от скрипта защото все пак ми извежда краткия резултат но ми прави проблеми със пълната новина... и явно там има нещо омазано.... :) Е така се и оказа... но проблема беше на такова място че просто не очаквах :) Да не изпадам в подробности... Благодаря за съдействието :) Титла: Re: Проблем с фукнция при изваждане на резултата: Публикувано от: VladSun в Apr 10, 2010, 11:37 Би било добре да не ползваш глобални променливи ;)
За достъп до DB обекта най-често използваният шаблон е Singleton - осигурява ти достъп подобен на глобалния, като също така гарантира, че инстанцията на този обект е единствена. http://en.wikipedia.org/wiki/Singleton_pattern#PHP Това е "скелетът" - ти си добавяш нови методи и проемнливи, като вече си работиш нормално с тях ($this-> ....) Примерно ползване: Код
Титла: Re: Проблем с фукнция при изваждане на резултата: Публикувано от: RedIce в Apr 10, 2010, 12:35 Мерси... ще го разгледам по късно :)
Иначе аз принципно ползвам класове и обекти като ползвам $this-> Титла: Re: Проблем с фукнция при изваждане на резултата: Публикувано от: VladSun в Apr 10, 2010, 18:43 Имах предвид, че "скелетът", използва само self (заради статичните методи), но в процеса на разширяване не се ползва self, а $this, защото работиш с инстанция на класа (получена чрез getInstance статичния метод).
Ето един много опростен вариант: Код
Методите за създаване на инстанция (constructor, clone) са нарочно private за да не може да се създаде инстанция, която не е създадена чрез getInstance - методът, който гарантира единственост на инстанцията. |