LLIMATKO
Эксперт
Дата регистрации:
12.02.2013 15:31:03
Сообщений: 129
Проблема такая. Иду по курсу Михаила - Создание движка. Сейчас реализую главную страницу, так сказать написали все классы и теперь хочется поглядеть че получилось
При запуске получаю такую ошибку:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes) in W:\home\newsite\www\lib\database_class.php on line 27
Она соответсвует классу Select а именно -
private function select($table_name, $fields, $where = "", $order = "", $up = true, $limit = ""
{
$table_name = $this->config->db_prefix.$table_name;
for ($i = 0; $i<=count($fields); $i++)
{
if ((strpos($fields[$i], "("===false) && ($fields[$i] != "*") $fields[$i] = "'".$fields[$i]."'";
}
$fields = implode(",", $fields);
if (!$order) $order = " ORDER BY 'id'";
else
{
if ($order != "RAND()"
{
$order = " ORDER BY '$order'";
if (!$up) $order .= " DESC";
}
else $order = "ORDER BY $order";
}
if ($limit) $limit = " LIMIT $limit";
if ($where) $query = "SELECT $fields FROM $table_name $where $where $order $limit";
else $query = "SELECT $fields FROM $table_name $order $limit";
$result_set = $this->query($query);
if(!$result_set) return false;
$i=0;
while ($row = $result_set->fetch_assoc())
{
$date[$i] = $row;
$i++;
}
return $date;
}
Ошибку указывает на эту строчку
if ((strpos($fields[$i], "("
===false) && ($fields[$i] != "*"
) $fields[$i] = "'".$fields[$i]."'";
Заранее спасибо всем, кто поможет и наведет на путь истинный)
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Не <= count($fields), а < count($fields)
LLIMATKO
Эксперт
Дата регистрации:
12.02.2013 15:31:03
Сообщений: 129
Спасибо, помогло)
Сижу все исправляю ошибку и не могу понять следующую. Точнее смысл ошибки я понял.
Но не буду разглагольствовать. Ошибка все на тойже стадии - создание главной страницы сайта по Вашему курсу Михаил.
Пытаюсь вывести первый раз главную сттраницу. Ошибка следующая -
Fatal error: Call to a member function getAll() on a non-object in W:\home\newsite\www\lib\global_class.php on line 64
тут либо нету объекта getAll() либо не объявлен объект $db.
64 строчка из глобал класса.(я вывел всю функцию)
public function getAll($order = "", $up=true)
{
return $this->db->getAll($this->table_name, $order, $up);
}
Функция getAll в database_class
public function getAll($table_name, $order, $up)
{
return $this->select($table_name, array("*","", $order, $up);
}
Как я поня мы $db как объект объявляли только в index.php. Чет я совсем запутался и прошу прощения,если задаю глупые вопросы)) учусь все таки)
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
$this->db - нет к нему доступа в GlobalClass.
LLIMATKO
Эксперт
Дата регистрации:
12.02.2013 15:31:03
Сообщений: 129
Хм, а почему? не срабатывает конструктор? Делал как у Вас
abstract class GlobalClass {
private $db;
private $table_name;
protected $config;
protected $valid;
protected function __construct ($table_name, $db)
{
$this->db = $db;
$this->table_name=$table_name;
$this->config = new Config();
$this->valid = new CheckValid();
}
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Возможно, что передаётся в конструктор не пойми что.
LLIMATKO
Эксперт
Дата регистрации:
12.02.2013 15:31:03
Сообщений: 129
уже 3й день ищу ошибку(( кажется легче все сдалеть по новому.
Только уж больно много надо делать
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
http://myrusakov.ru/php-finderror.html - проверяйте согласно этому методу, где $db является чем-то непонятным.
malina95
Мастер
Дата регистрации:
15.07.2012 07:13:44
Сообщений: 208
Кто нашёл ответ на этот вопрос отзовитесь плиз, реально уже бесит, неделю уже не могу вывести главную страницу, а главное вот в чём прикол:
Пунктов меню 4 выводится, а содержания их нет, тоесть просто 4 точки, а ссылок и названий ссылок нет, точно также и с баннерами.
Скажите плиз хоть где такую ошибку искать!!!
LLIMATKO
Эксперт
Дата регистрации:
12.02.2013 15:31:03
Сообщений: 129
я нашел ответ на вопрос. Я сделал все заново, хоть и потратил много времени, но я доволен. Я каждый шаг абсолютно проверял, правильно ли он работает или нет. Ошибок оказывается было куча) но за 1 неделю я преодолел.
Проверяйся выводом на экран всех необходимых значений поэтапно и найдете ошибки. У меня к примеру даже синтакс запросов был не верный)