верно. но вернее на мой взгляд заявить что универсальный класс вносит ограничения на работу с конкретной субд. то есть невозможно будет использовать некоторые низкоуровневые оптимизации так как код должен быть кросс-субд. как следствие - если программа пишется под мускул и в обозримом будущем а) нет планов миграции на другие субд и б) нет планов публикации сообществу которое может использовать другие субд - нафиг не нужен пдо. особо переживать по поводу не-мускула тоже имхо не нужно - это вроде как самый массовый движок если суммировать оригинал, машку, перкону и прочие форки. следовательно можно писать и оптимизировать под мускул и навязать мускул конечному "пользователю". кстати навязывание тоже достаточно распространенная штука. например такой мало распространенный софт как teamspeak3 вполне себе в открытую требует дроп-ин рейплейсмент мускула на марью. кому очень надо - будет и дальше юзать на мускуле так как они бинарно совместимы. только техподдержку им не окажут бедапичаль.
Столкнулся с такой проблемой на странице должны выводиться категории и сами посты находятся в 2-х табличках catergorya, post. Делаю я запрос в базу для вывода постов по нужной категории Код (PHP): $post= $conn->prepare('SELECT * FROM `post` WHERE id_catergorya = :id'); $post->execute(array('id' => $_GET['catergorya'])); И потом на страничке в нужном месте вывожу Код (PHP): <?php while($result_post = $post->fetch(PDO::FETCH_BOTH)){ echo $result_post['name'];} ?> Потом я хочу запросить для менюшки категории Код (PHP): $categoriya= $conn->prepare('SELECT * FROM `categoriya` '); $categoriya->execute(); В нужном месте сайта точнее меню пишу Код (PHP): <?php while($res = $categoriya->fetch(PDO::FETCH_BOTH)){ echo '[url="#.php?categories='.$res['id'].'"]'.$res['name'].'[/url]</br>'; } ?> Проблема в том что при выполнении этих 2 запросов ни чего не отображаеться если один из них удалить то тогода выполняеться второй Добавлено спустя 55 минут 48 секунд: А блин раскоментировать забыл строку. Кстати сказать а можно как то выводить работу php по другому а то каша получается.
Данные, естественно, переплетаются - тебе же из вывести надо. При вынесении шаблона в отдельный код главный результат - не переплетаются команды подготовки этих данных, такие как запросы к БД, расчёты там всякие и т.п. Мне кажется, с разрешением в php 5.4 всегда использовать короткий синтаксис echo в большинстве внешних шаблонизаторов пропал смысл. Можно писать шаблоны прямо на php Я вообще их не люблю. Работал со smarty, с XSLT (ну если CMS этого требует, никуда не денешься) - не вижу никаких реальных преимуществ.
В иделае я хотел бы отделить php от html но как я не пытался получается всё равно в куче вот например нужно мне вывести и категории и постики я создал страницу post.php в верху страницы исполняется php потом начинается html в тоге я разкидываю по странице куски на подобие этого Код (PHP): <?php while($res = $categoriya->fetch(PDO::FETCH_BOTH)){ echo '[url="#.php?categories='.$res['id'].'"]'.$res['name'].'[/url]</br>'; } ?> Проходит несколдько дней начинает забываться что и как работает приходиться вчитываться в код что бы понять где что находиться. Как вариант я начал писать для каждой строки коментарии что бы не забывать потом начал называть переменные коментариями. НАпример Код (PHP): $sozdayam_massiv_dlya_opravki // Создаём массив для отправки //Или $gotovim_zapis_v_bazu // Готовим запись в базу Когда мне тут показали работу с функциями через них стало чуть по легче понимать происходящее но переложить всё на функции пока не получаеться
Прочитай документацию по какому либо framework, например symfony2 Их и делают чтобы было легче организовать разработку.
у тебя подход к шаблонизатору ненормальный. в модели ты должен готовить данные а в виде только выводить. не должно у тебя быть в шаблоне итерации ответа от субд. зато может быть итерация массива подготовленных данных. то есть у тебя вид это просто обертка вокруг некоторых данных. меняя вид ты должен что вполне логично менять итоговый результат но при этом не переписывать весь код. я рад что ты меня как обычно не поймешь но я получил очередную возможность разместить в твоей теме сообщение.
denis01, какое symphony2, здесь ещё знаний не хватает. Ganzal, ну зачем ему MVC? AnteFil, поначалу можно не разносить подготовку и вывод по отдельным файлам, а просто разделить их в одном файле. ОДна часть посвящена только подготовке данных - всяким там запросам, расчётам и т.п., а другая - только выводу Код (PHP): <?php // Нет никакого смысла использовать prepared-запросы, если в запрос не подставляется никаких параметров. //Можно воспользоваться удобным способом обработки результатов PDO foreach ($conn->query('SELECT * FROM `categoriya`') as $res) $categories[] = $res; // Ниже в файле <?php foreach ($categories as $cat) { ?> <a href='<?= $cat['id']; ?>'><?= $cat["name"]; ?></a><br> <?php } ?>
Нет я не хочу использовать фремворки так как хочеться сначало основательно понять что и как изучть а потом уже можно
А тебя ни кто и не принуждает изучать, а просто посмотреть как там реализована система MVC, на которой реализуется 90%+++ всех сайтов и т.д.
вордпресс чтоль? откуда такая огромная цифра по кодынайтеру? Добавлено спустя 2 минуты 30 секунд: ну то есть пока не очень популярный фреймворк чтоб давать ему цифру 90%
http://www.google.com/trends/explore#q=codeigniter%2C%20yii ... ipe&cmpt=q Добавлено спустя 5 минут 14 секунд: извини но я с тобой не соглашусь. тут нужно определиться с тем что мы сравниваем. допустим на этом сайте форум phpbb с реализованный mvc структурой. и допустим на этом форуме 50 000 тысяч страниц. но форум один. и возьмем допустим десять сайтов-визиток на "чистом" пхп. им все задротства mvc не нужно но нужна динамика. поэтому они не статика но без mvc. допустим там по три страницы. тридцать страниц против пятидесяти тысяч конечно капля в море. но десять сайтов против одного - не такой убедительный но разгром уже в обратную сторону. так что нужно уточнять о чем мы говорим и по какому критерию записывается стата в тот или иной график.
нет, почему же))) ты просто зря конкретную цифру написал так как единой её быть не может - обоснование выше. да и использование или не использование mvc это по сути выбор программиста. линейный алгоритм может оказаться быстрее для выполнения каких-то простых задач. и должен использоваться если не предполагается что задача должна решаться разными путями. с другой стороны имхо mvc дает больше гибкости проекту. естественно за гибкость мы платим некоторым оверхедом за сопровождение избыточного кода. ну и как бы мы сейчас с тобой по сути про антюшку говорим. как ты думаешь он сильно НЕ готов к mvc? я думаю твоя цифра в 90% это даже еще маловата будет))))))))
Такой вопрос я в функции пишу Код (PHP): global $conn; $vopros = $conn->prepare('SELECT * FROM `vopros` WHERE id = :id'); $vopros->execute(array('id' => $str)); $vopros5 = $vopros->fetch(); if($vopros5->rowCount() == '0'){ $error = 'ТАкого топика нет'; //такого топика нет return $error; } А результате Fatal error: Call to a member function rowCount() on a non-object in
mkramer, VLK, AnteFil выделю важную часть моего совета: Прочитай документацию по какому либо framework
достаточно разнести получение и отрисовку в разные функции, как у тебя сразу появится понимание от чего какша и что PHP уже сам по себе очень даже шаблонизатор. Чувак, PHP задуман для того, чтобы формировать HTML. Отделять - это плодить лишние сущности. Тебе надо просто логику и отображение разделить друг от друга. Добавлено спустя 47 секунд: Разбивай на функции, будет удобно. Разбивай по смыслу. Добавлено спустя 37 секунд: Английский учи уже Добавлено спустя 1 минуту 23 секунды: Пхп сам по себе сильный фреймворк с уймой готовых функций. Но если ты хочешь работать по этой профе, то надо учить основные фреймворки. Правда можно учить уже после того, как устроишься на работу - со старшими товарищами удобнее. Добавлено спустя 1 минуту 27 секунд: Я вообще не вижу смысла в мвц. Это нужно, когда у тебя приложение как сервер. В случае с PHP это притянуто за уши из других языков. Добавлено спустя 2 минуты 20 секунд: Зачти про Синглтон. Добавлено спустя 1 минуту 22 секунды: Если это не объект, то что? Это я так типа уже ответил на твой вопрос, но тебе надо воспользоваться функцией var_dump() и зачесть доку по функции, откуда ты берёшь эту переменную. Видимо она не всегда возвращает объекты, чувак.
Можно ли вернуть из функции используя return 2 параметра. Например 1 параметр return 0 и второй return $data ?. Так как в результате выполнения функции я жду от неё ответа нормльно ли всё прошло и если да результат