powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопросы по созданию своей CMS
25 сообщений из 57, страница 2 из 3
Вопросы по созданию своей CMS
    #39194099
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex721так не работает...
Код: sql
1.
2.
3.
4.
5.
SELECT p.*,u.username, f.firm_name 
	FROM projects p 
		LEFT JOIN firms f ON f.firm_id = p.pr_firm
		LEFT JOIN users u ON u.uid = p.pr_user and u.uid = p.pr_author
WHERE p.pr_active = '1' LIMIT $start,$project_per_page"



Если честно, не вчитался, но несколько условий можно связывать формами and или or .
скорее всего имелось в виду это.
еще больше можно узнать на секретном ресурсе
http://www.mysql.ru/docs/gruber/
- лучше почитать.

Брать как первую задачу CRM несколько рискованно, поначалу лучше нарисовать на 1-2 табличках TODO - органайзер.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39194257
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnoguа я б на вашем месте все таки почитал, хотя бы это
у таблиц должны быть разные алиасы
select u1.name AS u1_name, u2.name AS u2_name ..JOIN users u1... JOIN users u2
и если pr_firm(1), pr_user(2), pr_author(2) обязательные, то inner join, а не leftс inner не выводит строки, где не указана фирма или пользователь.
Хотя по задумке такие проекты должны быть...
С алиасами не совсем понятно.
подкиньте ссылочек с хорошими примерами запросов.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39194279
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разберитесь сперва с join , чтобы понимать что вы пишете.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39194357
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я просто оставлю это здесь.

http://www.site-do.ru/db/sql4.php
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39194448
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил проблему дополнительными запросами.

Цель была: Выбрать активные проекты, заполнить табличку данными: название проекта, автор проекта, ответственный, фирма заказчик, фирма исполнитель, прочая информация).
Проблема была в преобразовании ID юзеров в имена и ID фирм в название.

Основной запрос:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
$qr_result = mysql_query("
SELECT p.*,u.username, f.firm_name
	FROM projects p 
		LEFT JOIN firms f ON f.firm_id = p.pr_firm
		LEFT JOIN users u ON u.uid = p.pr_lid
	WHERE p.pr_active = '1' LIMIT $start,$project_per_page") or die(mysql_error());
...
while($data = mysql_fetch_array($qr_result)){ ...


Решил добавив внутрь вывода основного запроса еще двух запросов:
Код: php
1.
2.
3.
4.
5.
#Имя предприятия исполнителя
	$firm_performer=mysql_result(mysql_query("SELECT firm_name FROM firms WHERE firm_active='1' AND firm_id=".$data['pr_performer']),0);
	#Имя автора проекта
	$user_author=mysql_result(mysql_query("SELECT username FROM users WHERE user_active='1' AND uid=".$data['pr_author']),0);
	



Теперь понял удобство шаблонной верстки и неудобство смешивания кода и вывода.
Следующим этапом (после доработки других разделов) буду осваивать шаблоны.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39194458
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
SELECT p.*,u1.username AS lid, u2.username AS author, f.firm_name
	FROM projects p 
		LEFT JOIN firms f ON f.firm_id = p.pr_firm
		LEFT JOIN users u1 ON u.uid = p.pr_lid
                LEFT JOIN users u2 ON u.uid = p.pr_author
	WHERE p.pr_active = '1' LIMIT ...
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39194502
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu
Код: sql
1.
2.
3.
4.
5.
6.
SELECT p.*,u1.username AS lid, u2.username AS author, f.firm_name
	FROM projects p 
		LEFT JOIN firms f ON f.firm_id = p.pr_firm
		LEFT JOIN users u1 ON u.uid = p.pr_lid
                LEFT JOIN users u2 ON u.uid = p.pr_author
	WHERE p.pr_active = '1' LIMIT ...

Unknown column 'u.uid' in 'on clause'

хотя в таблице users есть колонка uid - id юзера.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39194518
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex721,

а чуть подумать, а не просто копипастить?
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39194678
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жаба поможет.
https://www.toadworld.com/products/toad-for-mysql
тренироваться с запросами. Она добрая.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39195918
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый блин - как говорится комом.
С одной стороны, часть проекта получилась, более того - набрался опыта.
Но с другой стороны зашел в тупик с той моделью, которую делал.

Моя ЦРМ состоит из таких модулей: предприятия, контакты, проекты, события, задачи.
На каждый модуль у меня сделана отдельная часть, вида
Modules.php
Module.php?id=n
Module_add.php
Module_edit.php
Module_remove.php

Где вместо module - 5 вышеописанных модулей.

И когда я дошел до расширенных выборок, то понял, что выбрал не ту констиукцию исполнения.
Мои модули не позволяют делать такие запросы:
- все проекты фирмы постранично
- всех задачи фирмы
- все задачи проекты
И т.п.
В моем случае на каждый запрос нужно будет мастерить отдельную страницу.
Это треш.
########################

Мне кажется, нужно было делать структуру, типа такой:
Один глобальный файл
Index.php?firm=&user=&project=&message=&task=&page=
Т.е. из url выбираем переменные и от их комбинации будут складываться разные категории и запросы

И доп.модуль управления
/Add.php? и опционально что добавляем (firm, project, user...)
И тоже самое для удаления и редактирования.

Я правильно размышляю?
Подскажите если ошибаюсь.

Зы. Готовых бесплатных црм такого уровня я не видел. А то, что есть в интернете это cms форумов, блогов и гостевых книг.
Несколько разные системы. Форум или блог я бы сделал без проблем, я думаю.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39195921
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В перспективе, я бы добавил туда еще договора, счета и номенклатуру.
Не могу представить архитектуру страниц такой системы...
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39195949
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex721Мне кажется, нужно было делать структуру, типа такой:
Один глобальный файл
Index.php?firm=&user=&project=&message=&task=&page=
Т.е. из url выбираем переменные и от их комбинации будут складываться разные категории и запросыДумаю, в принципе так. Только лишние параметры указывать и принимать из входных данных не нужно.
Например, для просмотра задачи указываем /index.php?m=tasks&task_id=12345 - здесь указан модуль (параметр m), а при отсутствии указания экшн (параметр a) будет подключен index.php соответствующего модуля с реализацией функционала просмотра указанной задачи. Впрочем, можно пойти по более сложному пути, если отказаться от индексного файла внутри модуля, а дефолтовый экшн модуля определять где-то в настройках каждого конкретного, конечно, если такое изменение на ходу вообще может понадобиться.
Однако, установку дефолтовой страницы CRM вполне можно отдать на откуп пользователю - кому-то удобнее в первую очередь без лишних кликов видеть календарь на месяц, кому-то список задач на сегодня, кому-то список активных проектов на неделе.

Вернёмся в наш модуль. Для вызова страницы редактирования задачи /index.php?m=tasks&a=task_edit&task_id=12345 - тут подключается файл /modules/tasks/task_edit.php

Для сохранения правок /index.php?m=tasks&a=task_edit_save - тут айди кажется логичным передать в POST-данных вместе с остальными параметрами задачи.

А фирма и проект в данных случаях легко вычисляются по имеющимся связям и в передаче через URL не нуждаются в принципе.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39196090
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crm на пхп конечно были, брать такую задачу как первую - амбициозно и весьма. Можно либо взять попроще что-то - сделать допустим сервер для игры в кр-нолики три в ряд. Чисто для разминки. Или похакать готовую crm, пописать модулечки к ней.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39196332
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir BaskakovМожно либо взять попроще что-то - сделать допустим сервер для игры в кр-нолики три в ряд. Чисто для разминки.это уж слишком примитивно.
Я программированием вялотекуще занимаюсь уже 15 лет. Просто это никогда не было моей основной работой, поэтому особо не расширял кругозор в этой сфере.
А сейчас есть возможность, потребность и желание сделать такую систему.
По сути, у меня сейчас работает подобная система, реализованная на excel vba, с рядом неудобств.
За два года она показала свою живучесть необходимость. Фактически, переношу ее в веб.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39196333
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

Спасибо за комментарий.
У меня появилось новое решение на базе того, что есть.
Модули будут отдельными users.php projects.php tasks.php...
А с помощью url будут передаваться атрибуты.
Например:
Все проекты этой фирмы
Projects.php?firm=123

Все сообщения проекта
Messages.php?project=123

Все пользователи фирмы
Users.php?firm=123

Участники проекта
Projects.php?user=123

Вроде должно решить эти вопросы.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39196334
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex721Участники проекта
Projects.php?user=123
Наоборот, конечно
Users.php?project=123
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39196380
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex721Модули будут отдельными users.php projects.php tasks.php...
А с помощью url будут передаваться атрибуты.
Например:
Все проекты этой фирмы
Projects.php?firm=123Вы хотите обращаться к файлам модуля напрямую? Не знаю, будет ли это хорошим решением. В каждом файле надо будет инклюдить некий общий init.php, в котором, в свою очередь, будут вызываться всякие инициализации, подключение к БД, установление личности пользователя, проверка его привилегий и ещё туева хуча всякого, что никак не зависит от конкретного модуля. В конце файла, вероятно, надо будет делать какой-то аналогичный инклюд. Да и единая точка входа теряется. Или планируете сделать какой-то url-rewrite с перенаправлением всех обращений к корневому index.php? Оба варианта мне кажутся излишним усложнением.

На мой взгляд, не следует сваливать все файлы в одну кучу. Во всяком случае, есть смысл объединять файлы каждого отдельного модуля в свою директорию.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39196817
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex721 , если система фактически уже есть, то может переносить ее не на пхп?
а на руби-на-рельсах например. может оно органичнее перенесется. ну удачи, в любом случае.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39197168
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir BaskakovAlex721 , если система фактически уже есть, то может переносить ее не на пхп?
а на руби-на-рельсах например. может оно органичнее перенесется. ну удачи, в любом случае.Руби - темный лес.

Ребята, такой вопрос - как после отправки формы очистить переменные?
У меня получилось так, что если рефрешить страницу с отправкой, то данные отправляются каждый раз из памяти как я понимаю...

Получаю данные с формы так $mess_text = $_REQUEST['mess_text'];
после отправки сбрасываю $mess_text = Null;
Не помогает...
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39197223
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделать редирект
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39197226
Sidmal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex721Не помогает...
у вас данные сохранены в суперглобальном массивке $_REQUEST, собственно от туда и происходит заполнение переменной.
для того чтобы сбросить значение суперглобальной переменной используйте функцию header
P.S.> и мой вам совет возьмите за практику не использовать $_REQUEST, а использовать массивы $_GET и $_POST для получения данных формы - это и дисциплинирует и поможет при дальнейшей валидации данных
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39197229
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SidmalAlex721Не помогает...
у вас данные сохранены в суперглобальном массивке $_REQUEST, собственно от туда и происходит заполнение переменной.
для того чтобы сбросить значение суперглобальной переменной используйте функцию header
P.S.> и мой вам совет возьмите за практику не использовать $_REQUEST, а использовать массивы $_GET и $_POST для получения данных формы - это и дисциплинирует и поможет при дальнейшей валидации данныхСпасибо, учту.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39197242
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а без header есть ли возможность сбросить содержимое $_POST?
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39197256
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex721а без header есть ли возможность сбросить содержимое $_POST?Вряд ли что-то есть универсальное. Это ж браузер нынче так устроен, что помнит отправляемые данные. По редиректу делается принудительный переход, ясное дело, без POST-данных.
Другой момент есть ещё. Сам по себе редирект - не панацея. Точнее, браузер после отправки формы помнит отправляемые данные до тех пор, пока не пришел ему заголовок с редиректом. А значит, в этот промежуток времени можно отправить форму ещё раз. От этого тоже есть защита. В код формы добавляется скрытое поле, уникальное значение которого записано где-то в БД. На стороне сервера по получению данных значение поля проверяется по БД и, если таковое имеется, то запись из базы удаляется, а данные идут дальше. Если в базе не найдено контрольное значение - значит, это либо левые данные, либо повторные.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39197300
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если просто после первой отправки скрыть все отправочные формы?
...
Рейтинг: 0 / 0
25 сообщений из 57, страница 2 из 3
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопросы по созданию своей CMS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]