<MyRusakov.ru />

Создание движка на PHP и MySQL 2.0

Создание движка на PHP и MySQL 2.0

Видеокурс "Создание движка на PHP и MySQL 2.0" научит Вас создавать профессиональные движки для сайтов на PHP и MySQL с использованием ООП и паттерна MVC.

В курсе разобрана вся теория по структуре движка: как всё устроено, какие должны быть объекты, какая у них иерархия и как они взаимодействуют между собой.

В практической части будет создан движок с чистого листа. Будет создано ядро, все адаптеры, все вспомогательные классы, а также классы для работы с объектами базы данных. И чтобы курс был максимально полезным, будет создан движок для сайта MyRusakov.ru.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Урок - создание движка
12.03.2013 15:45:23 Урок - создание движка Сообщение #1
LLIMATKO

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]."'";
Заранее спасибо всем, кто поможет и наведет на путь истинный)
Профиль Ответить
12.03.2013 16:49:10 Урок - создание движка Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Не <= count($fields), а < count($fields)
Профиль Ответить
13.03.2013 10:04:42 Урок - создание движка Сообщение #3
LLIMATKO

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. Чет я совсем запутался и прошу прощения,если задаю глупые вопросы)) учусь все таки)
Профиль Ответить
13.03.2013 15:14:03 Урок - создание движка Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

$this->db - нет к нему доступа в GlobalClass.
Профиль Ответить
13.03.2013 17:37:30 Урок - создание движка Сообщение #5
LLIMATKO

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();

}
Профиль Ответить
13.03.2013 21:10:04 Урок - создание движка Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Возможно, что передаётся в конструктор не пойми что.
Профиль Ответить
13.03.2013 22:58:22 Урок - создание движка Сообщение #7
LLIMATKO

LLIMATKO

Эксперт

Эксперт

Дата регистрации:
12.02.2013 15:31:03

Сообщений: 129

уже 3й день ищу ошибку(( кажется легче все сдалеть по новому.

Только уж больно много надо делать
Профиль Ответить
14.03.2013 10:24:23 Урок - создание движка Сообщение #8
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

http://myrusakov.ru/php-finderror.html - проверяйте согласно этому методу, где $db является чем-то непонятным.
Профиль Ответить
30.04.2013 17:18:33 Урок - создание движка Сообщение #9
malina95

malina95

Мастер

Мастер

Дата регистрации:
15.07.2012 07:13:44

Сообщений: 208

Кто нашёл ответ на этот вопрос отзовитесь плиз, реально уже бесит, неделю уже не могу вывести главную страницу, а главное вот в чём прикол:

Пунктов меню 4 выводится, а содержания их нет, тоесть просто 4 точки, а ссылок и названий ссылок нет, точно также и с баннерами.

Скажите плиз хоть где такую ошибку искать!!!
Профиль Ответить
30.04.2013 19:18:36 Урок - создание движка Сообщение #10
LLIMATKO

LLIMATKO

Эксперт

Эксперт

Дата регистрации:
12.02.2013 15:31:03

Сообщений: 129

я нашел ответ на вопрос. Я сделал все заново, хоть и потратил много времени, но я доволен. Я каждый шаг абсолютно проверял, правильно ли он работает или нет. Ошибок оказывается было куча) но за 1 неделю я преодолел.

Проверяйся выводом на экран всех необходимых значений поэтапно и найдете ошибки. У меня к примеру даже синтакс запросов был не верный)
Профиль Ответить