Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: ООП и вывод из БД
Форумы портала PHP.SU » PHP » Программирование на PHP » ООП и вывод из БД

Страниц (1): [1]
 

1. dcc0 - 22 Декабря, 2015 - 13:21:01 - перейти к сообщению
Стесняюсь спросить, в ООП нормально так делать? Я про вывод внизу.
Или это не очень?
Спойлер (Отобразить)
2. esterio - 22 Декабря, 2015 - 18:48:19 - перейти к сообщению
Очень плохой код, даже не то про вывод, а все вместе.
1. старый драйвер mysql_*
2. нету инкапсуляции
3. а что будет сли нужно из нескольких таблиц тянуть данные одновременно
4. нету обработкы ошибок
3. dcc0 - 22 Декабря, 2015 - 18:57:28 - перейти к сообщению
Цитата:
2. нету инкапсуляции

Не понимаю пока. Нахмурился
Сижу с учебником
(Добавление)
Не могу понять, почему у меня двойной вывод получается?! Хм

Спойлер (Отобразить)

(Добавление)
Как-то странно вытягивается массив, все ключи дублируются числовыми.
(Добавление)
Ламер
(Добавление)
Спойлер (Отобразить)

Ладно, теперь попробую с mysqli
4. dcc0 - 23 Декабря, 2015 - 02:04:25 - перейти к сообщению
Спойлер (Отобразить)

А если мне нужно из разных скриптов переопределять хотя бы таблицу, как быть?
Я верно думаю, что в этом случае инкапсуляция есть? Но переопределить table я уже не могу
5. esterio - 23 Декабря, 2015 - 16:53:03 - перейти к сообщению
dcc0 пишет:
Не могу понять, почему у меня двойной вывод получается?!

Почитайте об иттераторах. В вашем случає сначала нужно результат занести в переменную, и лишь потом обходить foreach-ом
dcc0 пишет:
А если мне нужно из разных скриптов переопределять хотя бы таблицу, как быть?
Я верно думаю, что в этом случае инкапсуляция есть? Но переопределить table я уже не могу

У Вас в архитектуре класса пробемы. А также давайте названния внятные. Например не baza а database, не uzer а user
(Добавление)
Простите но долго обьяснять как сделать правилную архитектуру. Плюс ко всему каждый написал бы по своему. Но единственное что я вам порекомендую, так это забыть то что вы написали и сделать по другому. Во-первых, винисете коннект к базе в отдельный класс, также сделайте методы query, queryAll, queryRow, escape и сделайте синглтоном. Хотя в этом нет по сути ничего хорошего ибо тот же PDO сам имеет все ети методы, но это все же лучше чем то что у вас. А далее валяйте модели, которые собственно и делают запросы к базе с помощью класса DB. А уже сама модель пусть в себе хранит имя таблицы. Ну а если идти еще дальше, то лучше использовать готовый фреймворк с уже готовым DB Layer-ом
6. dcc0 - 23 Декабря, 2015 - 19:43:35 - перейти к сообщению
esterio, спасибо

 

Powered by ExBB FM 1.0 RC1