Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012 Откуда: Херсон, Украина
Помог: 7 раз(а)
Здравствуйте товарищи!
Я, начинающий программист, практикую создание функций PHP, которые облегчают работу.
Ищу ответы в интернете, наращиваю опыт. Мои планы по практике, это написать серию функций для работы с MYSQL. Я мало с ней знаком, как и с PHP.
Основная моя задача, написать более простые функции для себя, я не хочу затрагивать ООП, потому что в стандарте, я ещё мал.
Ну так вот, мне хотелось бы написать серию функций, например:
Она принимает в качестве первого аргумента или параметра, название
будущей или существующей таблицы.
Тоесть, если таблица не существует, функция её создаст, но создаст только в том случае, если имеются данные в ассоциативных массивах, если их нет, идет завершение работы скрипта.
В качестве второго параметра: ассоциативный массив с данными, которые обрабатываются функцией, и все индексы массива - будут названиями полей в таблицы, а все значения - ячейками. Например, есть массив:
, принимает также ассоциативный массив, в который помещаются, можно так сказать, издержки языка SQL.
Например, чтобы создать одну таблицу, назовем её main и в ней два поля, нужно записать так:
Третий параметр, нужен лишь для одноразового создания нужных полей, потом к этой же таблицы, он применяться не будет, но будет применяться, если мы, например хотим
создать таблицу с именем 'table', например так.
И, напоследок... Функция проверки, и создания таблицы работает, а также внесение
соответствующим полям значения, но пока я думаю, как внедрить этот же
третий параметр
пока он висит в самой функции, но думаю это у меня получиться.
Проработка условий в запросе SQL, я тоже хочу реализовать, в этой функции, например ещё через один массив.
Есть конечно взгяд на то, что бы все эти массивы засунуть в один многомерный,
а в функции уже потом разбирать, но не хочу я пока усложнять, и без того, мою дурную голову)....
P/S -1
ЕЩЁ раз повторяюсь, при первом вызове функции, функция создаст таблицу если её нет,
и внесёт
индексы массива $myrow_data в названия полей, а также значения массива в ячейки
полей, соответствующие названию.
Если таблица существует, функция будет вносить новые данные при каждом вызове.
ВСЁ!
И P/S -2
Хотел бы знать мнение форумчан, а также ваши собственные наработки и реализации!
Если, что не понятно, что я здесь написал, спрашивайте)
Покинул форум
Сообщений всего: 322
Дата рег-ции: Апр. 2012
Помог: 11 раз(а)
Это по-большому счету не нужно, вы действительно считаете, что это легче обычного sql-синтаксиса?
P.S. Хотя я не совсем прав. Классы для работы с бд таки нужны, к примеру в фреймворках, для унификация работы с разными бд.
Zuldek
Отправлено: 16 Мая, 2012 - 10:53:52
Постоянный участник
Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010
Помог: 50 раз(а)
Мнение такого, что для начальной практики и получения представления о том как работать с бд из PHP вообще, - почему бы и нет.
Для использования в реальных проектах, даже простых, - нет.
Почему:
Потому, что такой подход не просто "свой велосипед", но ещё и с квадратными колесами.
Если стоит задача получить простой интерфейс для работы с БД, используйте PDO, или готовые наборы классов любого популярного фреймворка, если писать на ООП пока не можете. Разобраться с ними - час. Экономия времени при использовании гораздо больше.
Вот класс, который использую сейчас (в основном):
Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012 Откуда: Херсон, Украина
Помог: 7 раз(а)
Я не спорю, что ООП лучше, это гораздо лучше!!! Можно курсировать кодом как хочешь, но я пока остановлюсь на стандарте. Я задумал - я сделаю; и я буду изобретать свой велосипед, пусть и с квадратными колесами, пусть даже и с треугольными, но мне главное опыт, самореализация задуманного, практика. Я хочу понимать, как устроен код, что делает, каждый элемент в коде. Ведь программист, - это тот кто программирует, а не использует готовые решения, написанные другими программистами. Да, можно взять готовое решение, разобраться в нём, прикрутить там к своему сайту, РАБОТАЕТ ВЕДЬ! - нет, это не программист, это пользователь, он пользуется готовым решением.
Я, хочу создавать своё, родимое, хотя как скажут, где оно твоё, это давно изобрели, всё верно! но я хоть буду знать, что я не смотрел на решение, а решал и думал. И, кстати, практика всегда, запоминается лучше. Зато потом, в далёком будущем,
после конца света 2012, за неуплату!, я буду программировать с закрытыми глазами, быть может)
P/S - Спасибо за советы, у кого-то, ещё будут пожелания ?! Наставления, что я дурак?!)
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Medallion пишет:
Ведь программист, - это тот кто программирует, а не использует готовые решения, написанные другими программистами
какая наивность)))
все писать самому хорошо только при обучении
если бы все задачи каждый раз решались заново это был бы кошмар просто))
caballero
Отправлено: 16 Мая, 2012 - 20:48:41
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Я не спорю, что ООП лучше, это гораздо лучше!!!
ООП тут ни причем. Есть масса уже готовых библиотек и функций без всякого ООП.
Цитата:
едь программист, - это тот кто программирует, а не использует готовые решения, написанные другими программистами.
ты в курсе что PHP и апач написаны другими програмистами? как и все остальное ПО которым ты пользуешся.
Порограмист должен уметь рещать поставленную задачу и делоать это эфективно. Какие при это решения свои или чужие не важно (во всяком случае юзеру или заказчику до этого дела нет)
Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012 Откуда: Херсон, Украина
Помог: 7 раз(а)
Извиняюсь, что выразился неправильно. Я хотел, сказать, про то, что нужно самому учиться создавать скрипты, решать, думать, а не взять готовый продукт, поставить, приложив минимум усилий, но незная из чего он себя представляет. А уж потом, брать готовые решения, и смотреть "какие классные штучки". Писали по поводу Апача и PHP, я уже не до такой степени дурак, я понимаю, что программа создает программу. Всё равно потом все программы, подпрограммы это ноли и единицы.
И как писал Лимон, да, хорошо писать при обучении, и я буду писать. А вот битву экстрасенсов, не смотри, это хорошо написанный сценарий, и вообще телевизор - это плешь.
LIME
Отправлено: 16 Мая, 2012 - 21:55:37
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
Хм, скажу то, что жалею, что не начал изучение с ООП. Процедурный и Объектный подход как были так и остались подходами, это как лимон и арбуз - один фрукт, другой ягода но все же съедобные.
Если абстрагировать и смотреть с высока то класс это ни что иное как набор функций собранные в один пакет или коробку.
Вот освоишь процедурный подход и убьешь столько же времени на переучивание, что бы писать в ОО стиле.
Конечно знания ф-ций никак не может быть лишним, это фундамент, но советую освоить возможности языка и перейти к ООП.
Для практики - пиши не обертки для mysql_* а пробуй реализовать функции не работающие с внешними ресурсами, например, pow, substr, count, str(i)pos итд. Кстати очень хорошая практика.
По сабжу - бред.
DeepVarvar
Отправлено: 16 Мая, 2012 - 22:37:46
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Вот оберточка для mysqli, OrmaJever меня практически оговорил от её использования.
Но тут я её ка пример привожу:
db::normalizeQuery("SELECT * FROM tbl WHERE id = %u LIMIT 1",$var);
Ну для тех кто в теме, там в коде все понятно, есть несколько типов запросов, счетчик запросов, различные базовые методы, нормализация результата и кеширование.
Под нормализацией подразумевается, если вы запрашивали одно поле с LIMIT 1, то в переменную вернется не $result[0]['keyname'], а сразу значение этого поля.
Или вы запрашивали несколько полей с лимитом 1, то вернет не:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.