powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопросы по созданию своей CMS
57 сообщений из 57, показаны все 3 страниц
Вопросы по созданию своей CMS
    #39190805
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, решил освоить php на примере создания своей cms.
Как правильно следить за количеством сообщений пользователя?
1. Сохранять значение в БД и делать +1/-1 при создании, удалении сообщений?
2. При каждом вызове подсчитывать кол-во выборкой?

POWERED BY LOGIC AND REASON
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39190946
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотреть, как это сделано в других CMS/форумах?

В самом простом случае, если исключить из рассмотрения всякие кеширования и оптимизации, то по вашему пункту №1.
Плюс предусмотреть специальную кнопку в админке для синхронизации, чтобы можно было насильно пересчитать посты.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39192392
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю модуль редактирования данных о пользователе.
У пользователя есть выбор фирмы, к которой он относится.
Раскрывающийся список выводится, но не пойму как автоматически сделать выбранным то поле, которое записано в базе?

таблица firms (firm_id, firm_active,...)
таблица users (uid, username, user_firm...)

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
$query = "SELECT * FROM firms WHERE firm_active='1' GROUP BY firm_name ORDER BY firm_name";
	$result = mysql_query($query) or die(mysql_error());
 
	print '<td><p>Предприятие: 
<SELECT name="user_firm" >';
	while ($row2 = mysql_fetch_array($result)) { print '<option value="'.$row2[user_firm].'">'.$row2[firm_name].'</option>'; }
	mysql_free_result($result);
	print ('</p></select></td>');
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39192438
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://htmlbook.ru/html/option/selected

атрибут option

Можно поворчать? Чтобы кмс была не слишком страшная, лучше поизучать принципы, заложенные в промышленных решениях, например

http://symfony-gu.ru/documentation/ru/html/book/from_flat_php_to_symfony2.html

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

спасибо.

сделал так:

Код: php
1.
2.
3.
4.
5.
if($row["user_firm"] == $row2["firm_id"]) {
	print '<option value="'.$row2[firm_id].'" selected >'.$row2[firm_name].'</option>'; }
	else{	
	print '<option value="'.$row2[firm_id].'">'.$row2[firm_name].'</option>'; }
	} 




Vladimir BaskakovЧтобы кмс была не слишком страшная, лучше поизучать принципы, заложенные в промышленных решенияхСпасибо за ссылку. У меня случай крайне тяжелый - постигаю азы самого PHP.
Синтаксис конечно жуть...
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39192492
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю чуть иначе. Список опций формирую без установки "selected". А нужную опцию выставляю яваскриптом.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39192496
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
//можно короче
$selected = $row["user_firm"] == $row2["firm_id"] ? ' selected' : '';
echo '<option value="'.$row2[firm_id].'"'.$selected.'>'.$row2[firm_name].'</option>'; 
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39192560
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex721 У меня случай крайне тяжелый - постигаю азы самого PHP.
Синтаксис конечно жуть...

Друг сказал мне - "Учи питон. И руби". Он умный. а синтаксис - если! концептуально верно писать - так нормальный. Логика отдельно, представление отдельно. ООП в каком-то объеме. ничего страшного, если не смешивать логику и представление, т.е. сразу взять шаблонизатор - Smarty или Twig.

(Джаваскрипт, он тоже красив. Очень. Если смотреть как пишет Крокфорд, например).

Всего хорошего.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39193476
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чото туплю.
Как сделать тройной запрос?
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39193482
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex721,

почему тройной? какая структура таблиц? В другой теме вроде было это, не?
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39193483
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробую так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
$qr_result = mysql_query("SELECT p.*, f.firm_name FROM projects p LEFT JOIN firms f ON f.firm_id = p.pr_firm WHERE p.pr_active = '1' LIMIT $start,$project_per_page") or die(mysql_error());
    echo '<table class="cool">';
	echo '<thead>';
	echo '<tr>';
	echo '<th>#</th>';
	echo '<th>Название проекта</th>';
	echo '<th>Предприятие заказчик</th>';
	echo '<th>Ответственный</th>';
	
	echo '<th></th><th></th>';
	echo '</tr>';
	echo '</thead>';
	echo '<tbody>';
	
	$i=1;
	while($data = mysql_fetch_array($qr_result)){ 

	$num=$start+$i;
	$i++;
	
//Дополнительный запрос
        $query2 = "SELECT * FROM users WHERE user_active='1' AND uid=".$data['pr_lid'];
	$result = mysql_query($query2) or die(mysql_error());
	mysql_free_result($result); 
	
		echo '<tr>';
		echo '<td>'. $num.'</td>';
		echo '<td><a href="/modules/projects/project.php?id=' .$data['pr_id']. '">'. $data['pr_name'] . '</a></td>';
		echo '<td><a href="/modules/firms/firm.php?id=' .$data['pr_firm']. '">' . $data['firm_name'] . '</a></td>';
		echo '<td><a href="/modules/users/user.php?id='.$data['pr_lid']. '">q'.$result['username']. '</a></td>';
echo "<pre>";
var_dump($result);
echo "</pre>";


В дампе это:
авторresource(16) of type (Unknown)
resource(17) of type (Unknown)
resource(18) of type (Unknown)
resource(19) of type (Unknown)
resource(20) of type (Unknown)
resource(21) of type (Unknown)
resource(22) of type (Unknown)
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39193490
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
структура таблиц:
Код: php
1.
2.
3.
projects (pr_id, pr_active, pr_firm(1), pr_user(2))
firms (firm_id(1), firm_name)
users (uid(2), username)
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39193495
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такой вариант тоже не работает

Код: php
1.
"SELECT p.*,u.username, f.firm_name FROM projects p LEFT JOIN firms f LEFT JOIN users u ON f.firm_id = p.pr_firm AND u.uid = p.pr_lid WHERE p.pr_active = '1' LIMIT $start,$project_per_page"
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39193498
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заработало.

Код: php
1.
$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());
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39193500
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. не делать запросы в цикле
2. добавить join users в первый запрос
3. использовать mysqli_ вместо mysql_, т.к. второе устарело
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39193511
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чем меньше всего написано, тем проще перестроиться на модель-представление-контроллер. Чем больше всего будет написано, тем больше будет путаницы. Возможно, более опытные коллеги помогут с простыми и понятными источниками по хорошему стилю и архитектуре php - проектов

автор. не делать запросы в цикле

а если уж делать - то подготовленные

http://php.net/manual/ru/pdo.prepare.php
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39193818
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за общение.
Был бы благодарен за простые примеры правильного проектирования бд, конструктора и т.п.
Разбирать с нуля готовую профессиональную цмс могут только профи.
Что же делать тем, кто занимается РНР пару недель...
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39193886
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не надо разбирать с нуля. Надо взять how to от серьезного проекта и вбить туда ====привет пхп======. И постепенно впиливать туда кусочки.

в приведенном коде - как минимум - изолировать запросы к базе от слоя представления - каждой таблице сопоставить класс. Набор строк из таблицы станет массивом экземпляров класса. Слой общения с базой должен по запросу формировать такие коллекции, а презентационный слой - их показывать.

Презентационный слой сделать на шаблонизаторе. (Смарти, твигю.....) И многое облагородится.

Если что - я не пхп-ист, могу пороть чушь.....
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39193913
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.... а какая цель обучения, ближайшие и перспективные задачи? от разных целей и план изучения неодинаковый.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39193985
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача - хочу сделать CRM.
Цель - это как минимум облегчит мою работу (коммерция).
возможно, я сменю профиль работы.
Раньше я писал на Делфи, работал на скада системах, с ПЛК.
С Вебом занимался давно, но не больше html и легкого php.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39193988
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделать совсем новую crm? С нуля? Или немного допилить готовую. И почему именно на php. Так или иначе - как китайцы научились делать машины? Привезли готовую, разобрали-собрали. Пересчитали лишнее. Поехало?
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39194034
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясните мне логику синтаксиса.
В интернете полно только базовой информации - с одним элементом конструкции.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Таблицы:
projects (pr_id, pr_active, pr_firm(1), pr_user(2), pr_author(2))
firms (firm_id(1), firm_name)
users (uid(2), username)
--------

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
	WHERE p.pr_active = '1' LIMIT $start,$project_per_page"


Задача запроса: из таблицы PROJECTS выбрать список проектов, с активным статусом = "1", выбрать id фирмы, id автора проекта и id ответственного пользователя (pr_user). И из таблиц FIRMS и USERS по ID подставить имена пользователей и название фирмы.
В запросе выше все работает, кроме подстановки второго пользователя.

Мне нужно в выделенную строку добавить что-то типа этого AND f.firm_id = p.pr_author
Чтобы я мог получить из uid имя автора проекта (pr_author) и имя пользователя проекта (pr_user)
Не пойму как синтаксис этого должен выглядеть.

Повторюсь, в интернете подобных множественных условий я не нашел...
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39194037
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так не работает...
Код: php
1.
2.
3.
4.
5.
6.
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
		LEFT JOIN users u ON u.uid = p.pr_author
	WHERE p.pr_active = '1' LIMIT $start,$project_per_page"
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39194044
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir BaskakovСделать совсем новую crm? С нуля? Или немного допилить готовуюЯ с PHP вообще не знаком. С БД тоже имею дело почти впервые.
Чтобы ковырять готовую систему я считаю нужно подтянуть знание самого языка.

Столкнулся с большими сложностями с пониманием синтаксиса PHP.
Ну читать книжки это не наш метод, когда есть форум друзей :)
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39194063
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
...
Рейтинг: 0 / 0
Вопросы по созданию своей 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
Вопросы по созданию своей CMS
    #39197388
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex721А если просто после первой отправки скрыть все отправочные формы?Скрытые формы прекрасно отправляются :-)
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39204227
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья, решил переделать систему.
Использую однотипные блоки модулей.
Во всех модулях работает, а в одном не хочет добавлять запись в базу.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
mysql_select_db($dbname, $link);
			$firm_author = $UserID;
			$firm_name = $_POST['firm_name'];

if ($firm_name <> NULL) {
			$sql = 'INSERT INTO firms (firm_name, firm_author) VALUES("'.$firm_name.'","'.$firm_author.'")';
			
			 if(!mysql_query($sql))
 			{$m = 'err';} 
	 			else
	 			{$m = 'add';}
			}
			mysql_query($query, $link);
			mysql_close($link);


Выдает err. Что не так то?
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39204233
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Duplicate entry '1' for key 'firm_author'

что ему не нравится?
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39204303
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположу, что на поле установлен уникальный ключ, а запрос пытается добавить в поле значение, которое уже существует в таблице.
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39204305
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поле не уникальное.

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

а в чем была проблема?
...
Рейтинг: 0 / 0
Вопросы по созданию своей CMS
    #39205700
Фотография Alex721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята, подскажите как реализовать передачу select option без перезагрузки страницы.
Смысл в чем. Хочу сделать фильтры для настройки выборки.
Соответственно, сейчас у меня получается после нажатия на кнопку "применить фильтр" значения сначала передаются в браузер, а после второго нажатия движок уже может получить их значения.
Как это сделать одним нажатием?

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
$firm = $_POST['firm'];
				if (isset($firm) && ($firm>0)){$firm_sql = '&firm='.$firm;} else {$firm_sql = "";}
					
			# фильтр по фирме			
						printf("<div class='block_message'><form action='messages.php?op=main".$firm_sql."".$project_sql."".$author_sql."' method='post' name='forma'><fieldset>");
						$query = "SELECT * FROM firms WHERE firm_active='1' GROUP BY firm_name ORDER BY firm_name";
						$result = mysql_query($query) or die(mysql_error());
						print '<p>Предприятие: <SELECT name="firm" ><option value=""></option>';
								while ($row2 = mysql_fetch_array($result)) { 
										if($firm == $row2["firm_id"]) {
												print '<option value="'.$row2[firm_id].'" selected >'.$row2[firm_name].'</option>'; 
										}
										else{
												print '<option value="'.$row2[firm_id].'">'.$row2[firm_name].'</option>'; 
												}
								} 
						mysql_free_result($result);
						print ('</select>');
...
Рейтинг: 0 / 0
57 сообщений из 57, показаны все 3 страниц
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопросы по созданию своей CMS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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