Справочник функций

Ваш аккаунт

Логин:
Пароль:
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:
Убрать блок ВКонтакте навсегда

Последние темы форума

Показать новые сообщения »

Почтовая рассылка



Подписчиков: 19017
Последний выпуск: 23.04.2012

PHP и MySQL - пишем свою CMS

Часть 1. Запись в таблицы базы данных MySQL

Автор: valoo
http://www.100litsa.org
15 сентября 2008 года

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

Если вы не писали программ на языке PHP с поддержкой MySQL, то лучше всего начать работу не на удаленном хосте, а на локальном. Скачайте с сайта http://www.denwer.ru/ дистрибутив "Денвер", установите его у себя на компьютере, и можете приступать к делу!

Прежде всего нам нужно выбрать подходящий механизм для работы. Записи, которые мы вносим в таблицы, должны находиться на экране в виде, доступном для их редактирования. В языке HTML для этой цели существуют формы. О работе с формами написано огромное количество книг и статей, поэтому на этом мы останавливаться не будем, а перейдем сразу к простому примеру.

Запустим локальный хост и создадим с помощью phpMyAdmin базу данных с именем simple_cms, а в ней - таблицу pages с двумя полями title и content. Для этого войдите в раздел SQL на панели phpMyAdmin и выполните такой запрос:

CREATE TABLE `pages` (
   `title` varchar(100) NOT NULL default '',
   `content` text NOT NULL
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

и phpMyAdmin построит вам эту таблицу.

Маленькое отступление:

если вы знакомы с базами данных хотя бы на уровне Microsoft Access, то вы помните, что каждое поле таблицы имеет ряд свойств. В данном случае мы присвоили полю content свойство text. Казалось бы, логично, ведь оно и предназначено для хранения текстов. Но следует помнить, что размер этого поля ограничен, поэтому, если вы хотите сохранить в нем текст "Войны и мира", то лучше определить его как longtext.

Таблица базы данных - pages

titlecontent

Чтобы управлять такой таблицей из админки, нам понадобится форма, состоящая из простого текстового поля (input type="text") для ввода заголовка, текстовой области (textarea) для ввода содержимого и кнопка "Отправить" (input type="submit").

Примерно так может выглядеть в нашей админке панель управления содержимым страниц.

Введите заголовок страницыВведите текст

Поместим эту форму в файл page.php

page.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Моя первая CMS</title>
</head>
<? include ('config.php'); ?>
<body>
<form action="admin.php" method="post">
<table border="1" align="center">
  <tr>
    <td>Введите заголовок страницы</td>
    <td>Введите текст</td>
  </tr>
  <tr>
    <td valign="top"><input name="my_title" type="text"
        size="50" /></td>
    <td valign="top"><textarea name="my_text" cols="60"
        rows="30" > </textarea></td>
  </tr>
</table>
<div align="center">
<input name="send" type="submit" value="Отправить" />
</div>
</form>
</body>
</html>

Создадим файл config.php, который будет осуществлять подключение к базе данных.

config.php

<?
$dblocation = "localhost";
$dbuser = "root";
$dbpasswd = "";
$dbname="simple_cms";

//Подключение к базе данных  
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) // Если дескриптор равен 0 соединение не установлено
 {
 echo("<p>В настоящий момент сервер базы данных не
         доступен, поэтому корректное отображение страницы
         невозможно.</p>");
 exit();
 }

if (!@mysql_select_db($dbname, $dbcnx))
 {
 echo( "<p>В настоящий момент база данных не доступна,
          поэтому корректное отображение страницы невозможно.</p>" );
 exit();
 }
?>

Теперь, когда у нас появилось подключение к базе данных и скрипт для ввода в нее нужной информации, остается организовать отправку туда содержимого текстового поля с именем my_title и текстовой области my_text. С этой целью мы определили в форме метод POST для передачи данных файлу admin.php - <form action="page.php" method="post">.

Когда администратор внесет в поля формы информацию и нажмет кнопку "Отправить", этот метод присвоит переменной $_POST['my_title'] значение текстового поля my_title, а переменной $_POST['my_text'] - значение текстовой области my_text.

Чтобы удостовериться в этом, добавим небольшой код в начало файла page.php:

   
<? include ('config.php');

<body>

<? print  $_POST['my_title'].'<br />'.$_POST['my_text'];?>

Запустим файл page.php. Если в программе нет ошибок, то вы увидите ваш заголовок и текст в окне броузера.

Прекрасно! Осталось только организовать запись этой информации в нашу базу данных. Для этого нам придется обратиться к языку запросов SQL, а точнее - к MySQL.

Чтобы записать новые данные в таблицу базы данных, которая благодаря функции

$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);

уже подключена к работе, нам следует использовать оператор INSERT языка MySQL. Чтобы не загромождать код страницы, вставьте этот фрагмент в файл page.php вместо кода вывода на печать:

if ($send)
   $sql = mysql_query("INSERT  into pages (title, content)
          values ('".$_POST['my_title']."', '".$_POST['my_text']."');");

То есть, если от кнопки "Отправить" методом POST был передан $send (см. name этой кнопки!), то должен выполниться данный запрос (функция mysql_query), и в таблицу базы данных будет записано содержимое полей формы.

Запись эта поначалу кажется трудной для чтения, и в ней можно просто запутаться во многочисленных простых и двойных кавычках. Поэтому рассмотрим ее в "чистом виде".

Параметром функции mysql_query(); является сам SQL-запрос, который можно представить в виде:

INSERT  into pages (title, content)
values ('значение_переменной_1', 'значение_переменной_2');

Так оно, вроде, понятнее ...

Теперь откройте phpMyAdmin и убедитесь, что записи внесены в поля таблицы. Но это всего лишь полдела. Нам нужно научиться "вытаскивать" из таблиц необходимые данные, чтобы работать с ними в админке, а главное - показывать их на сайте.

В окончательном виде файл page.php должен выглядеть так:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Моя первая CMS</title>
</head>
<? include ('config.php'); 
if (@$send)
   $sql = mysql_query("INSERT  into pages (title, content)
          values ('".$_POST['my_title']."', '".$_POST['my_text']."');");
?>
<body>
<form action="page.php" method="post">
<table border="1" align="center">
  <tr>
    <td align="center">Введите заголовок страницы</td>
    <td align="center">Введите текст</td>
  </tr>
  <tr>
    <td valign="top"><input name="my_title" type="text"
        size="50" /></td>
    <td valign="top"><textarea name="my_text" cols="80"
        rows="30" > </textarea></td>
  </tr>
  <tr>
    <td  colspan="2" align="center"><input name="send"
        type="submit" value="Отправить" /></td>
  </tr>  
</table>
</form>
</body>
</html>

Об этом - в следующей части.

Часть 2. Чтение из таблиц базы данных MySQL

Создадим в нашей админке перечень всех заголовков страниц, хранящихся в таблице pages. И организуем работу этого списка так, чтобы пользователь, щелкнув мышкой, получил доступ к содержимому страницы.

Для чтения записей из таблицы воспользуемся следующей конструкцией:

$sql = mysql_query("SELECT*FROM pages");
      while($record = mysql_fetch_array($sql))
   { 
     $title = $record['title']; 

   } 

Если в таблице находятся уже несколько записей, то в "чистом" виде конструкция выдаст нам только последнюю из них, ведь значение переменной $title все время обновляются в цикле while. Но мы применим маленькую хитрость. В том же цикле будем выводить их на экран все записи, одну за другой.

Для этого нарисуем таблицу, и часть ее поместим внутрь цикла:

<table border="1" align="center">
<? 
$sql = mysql_query("SELECT*FROM pages");
      while($record = mysql_fetch_array($sql))
   { 
  print '<tr><td>'.$record['title'].'</td>
       <td>Редактировать</td></tr>';
   }
?>
</table>

Теперь каждая прочитанная запись будет вноситься в ячейку, а ряды таблицы - "размножаться" по мере чтения последующих записей.

Рядом с ячейкой, куда мы поместили заголовки страниц находится еще одная ячейка. Я просто написал в ней слово Редактировать, а можно было какую-нибудь красивую пиктограммку поставить - неважно. Важно другое: эта запись (или картинка) должна привести администратора в раздел админки, где находится редактор текстов.

Здесь я хочу сделать маленькое отступление. В современных CMS используются WYSIWYG-редакторы (от сокращения What You See Is What You Get). В нашей SMS "Столица" их целых три - на выбор администратора, какой удобнее. Лично мне более по душе FCKEditor, хотя и у него есть свои глюки. Когда вы будете писать не учебную, а действующую админку, вам нужно будет скачать бесплатно распространяемые скрипты редактора и подключить их к админке. А пока что воспользуемся самым примитивным "редактором" - текстовой областью формы.

Для этого создадим файл editor.php со следующим кодом.

editor.php

<? include ('config.php'); ?>
<html>
<body>
<table border="1" align="center">
<? 
$sql = mysql_query("SELECT*FROM pages");
      while($record = mysql_fetch_array($sql))
   { 
  print '<tr><td>'.$record['title'].'</td><td><a
         href="editor.php?page_title='.$record['title'].'"
         >Редактировать</a></td></tr>';
   }
?>
</table>
<?
$sql = mysql_query("select * FROM pages where title='".$page_title."';");
  while($record = mysql_fetch_array($sql))
  {
   $content=$record['content'];
  }
?>  
<form action="editor.php" method="post">
<table width="100%"  align="center">
  <tr>
    <td align="center"><textarea name="text_edit" cols="80" rows="15"><? print $content; ?></textarea></td>
  </tr>
  <tr>
    <td align="center"><input name="save" type="submit" value="Сохранить"></td>
  </tr>
</table>
</form>
</body>
</html>

Разберем основные конструкции этого скрипта.

В каждой из рядов верхней таблицы появляется заголовок страницы, прочитанный из базы данных. Справа от него, в соседней клетке - слово Редактировать. Оно залинковано на ту же страницу editor.php и передает ей значение переменной $page_title, которое равно заголовку страницы в этом ряду (я выделил этот фрагмент кода красным цветом):

print '<tr><td>'.$record['title'].'</td><td><a href="editor.php?page_title='.$record['title'].
      '">Редактировать</a></td></tr>';

Когда пользователь нажимает на такой линк, он возвращается на ту же самую страницу, но уже с определенным значением переменной $page_title.

Следующий фрагмент кода ищет в базе данных таблицу pages, а в ней - значение поля content для которого поле title совпадает со значением переменной $page_title.

$sql = mysql_query("select * FROM pages where title='".$page_title."';");
  while($record = mysql_fetch_array($sql))
  {
   $content=$record['content'];
  }

Найдя такое поле, он передает его содержимое переменной $content, которая и распечатывает его в текстовой области.

<? print $content; ?> 

Теперь у нас появляется возможность редактировать этот текст. А вот как вернуть исправленный вариант этого текста в базу данных - об этом в следующей части.

Часть 3. Редактирование записей из таблиц базы данных MySQL

Добавим в начало файла editor.php следующие фрагменты кода (выделено красным):

<? 
session_start();
include ('config.php'); 
?>

А в самом конце этого файла допишем:

<? 
  $_SESSION['id']= $page_title;  
?>

Этот прием называется сессии. О том, как работают сессии можно прочесть в многочисленных учебниках по PHP, здесь же я хочу отметить, что сессия нам понадобится для того, чтобы в переменной запомнить страницу, которую мы редактируем. Хотя мы и нажали на кнопку Редактировать, и получили значение переменной $page_title (заголовок редактируемой страницы), после того, как мы внесем изменения и нажмем на кнопку Сохранить, страница editor.php перезагрузится, и значение $page_title будет потеряно. Вот поэтому мы и сохраним его в $_SESSION['id'].

А когда форма отправит методом POST на перезагруженную страницу editor.php значение переменной $text_edit (такое имя мы дали текстовой области), то нам удасться запустить следующий код:

if($save)
   $sql =mysql_query ("UPDATE pages SET content = '".$text_edit."' WHERE title='".$_SESSION['id']."';");

где save - это имя кнопки Сохранить.

Надеюсь, вы поняли, зачем нам понадобилась переменная $_SESSION['id'].

Полный скрипт файла editor.php будет выглядеть так:

<? 
session_start();
include ('config.php'); 
?>
<html>
<body>
<table border="1" align="center">
<? 
$sql = mysql_query("SELECT*FROM pages");
      while($record = mysql_fetch_array($sql))
   { 
  print '<tr><td>'.$record['title'].'</td><td><a href="editor.php?page_title='.$record['title'].
    '">Редактировать</a></td></tr>';
   }
?>
</table>
<?

$sql = mysql_query("select * FROM pages where title='".$page_title."';");
  while($record = mysql_fetch_array($sql))
  {
   $content=$record['content'];
  }
if($save)
   $sql =mysql_query ("UPDATE pages SET content = '".$text_edit."' WHERE title='".$_SESSION['id']."';"); 
?>  
<form action="editor.php" method="post">
<table width="100%"  align="center">
  <tr>
    <td align="center"><textarea name="text_edit" cols="80" rows="15"><? print $content; ?></textarea></td>
  </tr>
  <tr>
    <td align="center"><input name="save" type="submit" value="Сохранить"></td>
  </tr>
</table>
</form>
</body>
</html>
<? 
  $_SESSION['id']= $page_title;  
?>

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

А в следующей части мы поговорим о том, как удалить из базы данных ненужные записи.

Часть 4. Удаление записей из таблиц базы данных MySQL

Добавим еще одну ячейку к таблице файла editor.php :

<table border="1" align="center">
<? 
$sql = mysql_query("SELECT*FROM pages");
      while($record = mysql_fetch_array($sql))
   { 
  print '<tr><td>'.$record['title'].'</td>
  <td><a href="editor.php?page_title='.$record['title'].
  '">Редактировать</a></td>
  <td><a href="editor.php?page_title='.$record['title'].'&delete=y">Удалить</a></td>
  </tr>';
   }
?>
</table>

Совершенно неважно, какое значение мы передадим переменной $delete, можете написать &delete=1 или &delete=abcd, а важно то, что теперь можно написать условие, с помощью которого мы удалим выбранную запись:

if($delete)
   $sql =mysql_query ("DELETE FROM pages WHERE title='".$_SESSION['id']."';");

В окончательном виде наш файл editor.php выглядит так:

<? 
session_start();
include ('config.php'); 
?>
<html>
<body>
<table border="1" align="center">
<? 
$sql = mysql_query("SELECT*FROM pages");
      while($record = mysql_fetch_array($sql))
   { 
  print '<tr><td>'.$record['title'].'</td>
  <td><a href="editor.php?page_title='.$record['title'].
  '">Редактировать</a></td>
  <td><a href="editor.php?page_title='.$record['title'].'&delete=y">Удалить</a></td>
  </tr>';
   }
?>
</table>
<?

$sql = mysql_query("select * FROM pages where title='".$page_title."';");
  while($record = mysql_fetch_array($sql))
  {
   $content=$record['content'];
  }
if($save)
   $sql =mysql_query ("UPDATE pages SET content = '".$text_edit."' WHERE title='".$_SESSION['id']."';");
if($delete)
   $sql =mysql_query ("DELETE FROM pages WHERE title='".$_SESSION['id']."';");    
?>  
<form action="editor.php" method="post">
<table width="100%"  align="center">
  <tr>
    <td align="center"><textarea name="text_edit" cols="80" rows="15"><? print $content; ?></textarea></td>
  </tr>
  <tr>
    <td align="center"><input name="save" type="submit" value="Сохранить"></td>
  </tr>
</table>
</form>
</body>
</html>
<? 
  $_SESSION['id']= $page_title;  
?>

Вот, пожалуй, и все, что я хотел рассказать о принципах работы админки. Конечно же, в настоящей CMS все отдельные модули (а у нас их пока три: page.php, editor.php и служебный файл config.php) работают под управлением главного файла index.php, который единоразово подключает все модули к базе данных и по желанию пользователя может присоединять к себе модуль создания страниц, модуль редактирования, а также массу других модулей (модуль меню сайта, модуль управления гостевой книгой, баннерами и т.п.). Важно только понимать, что любые модули, любые действия в админке основаны на четырех главных операторах языка SQL:

  • INSERT - вставить запись в базу данных;
  • SELECT - выбрать записи из базы данных;
  • UPDATE - изменить запись;
  • DELETE - удалить запись.

Так что ничего сверхсложного нет в том, чтобы написать свою собственную админку. Любые CMS, даже такие гиганты как Joomla, работают на одном и том же принципе.

А уж подключить к админке сам сайт - это вообще проще простого, после того, как вы написали скрипт самой админки.

Успехов вам!

Оставить комментарий

Оставлять комментарии могут только зарегистрированные пользователи.

Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться. Регистрация бесплатна. Если вы уже зарегистрированы на CodeNet, то вам необходимо ввести логин и пароль в верхней (Alt-U) части страницы.

Комментарии

1. jazzlevit / 14 ноября 2011, 17:56:50
+2 / -1
Мне нравитсяМне не нравится

А где видео? я так и не понял.

2. mike / 04 июля 2011, 13:30:15
+1 / -2
Мне нравитсяМне не нравится

Цитата:
Ага,а теперь попробуйте написать что-нибудь в редактор на РУССКОМ языке. Все сотрется,как же. Автор,советую сначала тестить свою КМС-ку,а вот потом уже выкладывать....
добавьте в config.php

mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");



Эти строчки нужны только если mysql сервер не настроен правильно.

3. Dianos / 03 июля 2011, 23:47:39
+5 / -2
Мне нравитсяМне не нравится

Ага,а теперь попробуйте написать что-нибудь в редактор на РУССКОМ языке. Все сотрется,как же. Автор,советую сначала тестить свою КМС-ку,а вот потом уже выкладывать....
добавьте в config.php

mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

4. vov / 21 марта 2011, 19:19:33
+2 / -1
Мне нравитсяМне не нравится

Ещё был вопрос как привинтить админку к сайту. Скоро выложу скриптик и видео ищите тамже.

5. vov / 21 марта 2011, 12:34:53
+1 / -1
Мне нравитсяМне не нравится

А ребята ещё забыл добавить . Те кто долго пытался запустить этот скрипт рекомендую очистить папку tmp в которой храняться сессии .Она находится на том диске куда вы воткнули денвер удалите все файлы название которых sess их там у вас должно быть много если долго мучеетесь. В файлах записаны старые сессии. Удалите их и всё будет хорошо.
Надеюсь помог .
С уважением Владимир.
Видео на youtube по схожим и по этой теме.
Ищите TheDizain
сайт vvv-dizain
Всем удачи

6. vov / 21 марта 2011, 10:16:26
+1 / -0
Мне нравитсяМне не нравится

Надеюсь все посмотрели видео кто не понял.
Для того чтобы данный код работал в денвере надо именить кое что в файле php.ini
заходим на диске где установлен денвер в папку
Код:
usr/local/php5/php.ini

Ищем пункт DATA HANDLIING
и меняем register_globals = off на register_globals = On.
Сохраняем и получаем заветные надписи в поле редактирования.
Видео выложу на youtobe
Ищите пользователя TheDizain
или на сайте vvv-dizain точка ру
Всем Удачи

7. vov / 17 марта 2011, 16:47:25
+2 / -0
Мне нравитсяМне не нравится

Набрать на youtube TheDizain и там всё найдёте видео выложил
Видео по работе админки.

8. vov / 17 марта 2011, 13:30:55
Мне нравитсяМне не нравится

Да в денвере всё работать будет. Три в одном добавление выбор редактирование.Но скрипт не выкладывается.

9. Aola321 / 03 марта 2011, 11:46:29
+1 / -0
Мне нравитсяМне не нравится

Можно ли настроить Денвер, чтобы заработал editor.php?

10. vov / 20 февраля 2011, 14:52:59
Мне нравитсяМне не нравится

Ребята кто до сих пор не может разобраться с этим простым примером хочу сказать одно, он работает на 100%
автор молодец.
если пробл. с сессией сохраните файлы через notpad без bom
И кто тестирует в денвере и слабо с ним знаком у вас работать не будет editor.php
ЗАЛЕЙТЕ ФАЙЛЫ НА САЙТ В ОТДЕЛЬНУЮ ПАПКУ И БУДЕТ ВАМ СЧАСТЬЕ.
ПРИМЕР НА САЙТЕ www.vvv-dizain.ru был с нюансами по скрипту.
удачи

11. alexeyfenix / 10 июля 2010, 12:21:38
+1 / -0
Мне нравитсяМне не нравится

Я не знаю какая статья, но у меня НЕ РАБОТАЕТ НИ ***.Создал даже БД pages с полями title и content. Результата 0. Можете говорить, что у меня кривые руки, но я не знаю в чем дело уже.
П.С. Админ, перестань курить и сделай нормальную картинку подтверждения букв при регистрации,а не психоделическо-абстракционную. Еще бы загадку загадал на древнеславянком...

12. SHURIK2010 / 14 марта 2010, 11:29:52
+0 / -1
Мне нравитсяМне не нравится

ВЕЗДЕ ОДНО И ТО ЖЕ ТУТ НОВОЕ http://www.vin-web.ru/states/?php&&phpsite ПОПОЗЖЕ ЧУТЬ ПЕРЕДЕЛАЮ ЛУЧШЕ БУДЕТ И ИСХДНИК ЕСТЬ!!!!

13. danilich / 18 декабря 2009, 21:11:44
Мне нравитсяМне не нравится

а напишите более подробно как подключить к админке сайт. а то я ваще не могу никак понять как это сделать. уже пол нета облазил))

14. Gus / 12 декабря 2009, 19:40:20
Мне нравитсяМне не нравится

Друзья,
(@$send) - всегда пустой, подскажите где копать.
Пока использую такую проверку:
if ($_POST['send']) ... - так работает

15. danilich / 28 ноября 2009, 13:21:54
+1 / -1
Мне нравитсяМне не нравится

спс мне очень помогла эта стать))))
много искал как создать свой движок и ток тут нашол как его зделать.
respekt+5 автору)

16. valoo / 02 июня 2009, 18:00:45
+2 / -1
Мне нравитсяМне не нравится

Спасибо всем как за благодарные отзывы, так и за критику. Хочу лишь подчеркнуть еще раз, что цель статьи не в том, чтобы выложить в ней 100%-ный код работающей CMSки, а показать новичкам, с чего все начинается.
Желающие подробнее ознакомиться с ее работой могут зайти на мой сайт, работающий с моей же админкой (адрес в начале статьи) и оттуда написать мне на мейл.

17. SkyMаn / 27 марта 2009, 21:00:24
+2 / -0
Мне нравитсяМне не нравится

Зачод! Молодец. А тем, кто выпендривается - пусть идут гулять отсюда.

18. Harry62 / 07 января 2009, 18:23:54
+1 / -0
Мне нравитсяМне не нравится

Статья нормальная.
Главная мысль в начале - "По сути своей CMS - это инструмент для записи в базу данных всей информации о сайте."
Сейчас пишу свою CMC, именно с разделением административной панели и панели вывода информации. Как правило все CMS-ки это одно хитропереплетенное целое - это не правильно.
А кому нравится дрючить Joomly, полный вперед. Классная CMS не спорю. Тока зачем пихать ее на коммерческий проект, вы что клиенту будете жомлу ставить?(там одна база из 45 таблиц с базовыми возможностями, по большей части, для коммерческих проектов, ненужными).

19. Sitex / 30 ноября 2008, 13:06:01
+3 / -0
Мне нравитсяМне не нравится

Автор не пытался донести обширные знания проектирования как баз данных, так и ядра самой системы ....суть темы просто показать как что с чем работает, для тех кто начинает изучать вполне и этого достаточно.....я в сомнениях что tirasbiz, e-Freeze сразу стали изучать ядро, а тем более проектировать---- это бред и выпендреж!
меня убило другое--- tirasbiz, тебе решать что ль как и кому работать с SQl ??? (Если выбился из чайников, молчал бы или к статье путного добавил бы что нить).

20. VadimMZ / 21 ноября 2008, 14:08:09
+0 / -1
Мне нравитсяМне не нравится

На мой взгляд глупо было называть статью подобным образом,
так к CMS по приведённому примеру (Если её ваше можно назвать CMS) получиться весьма слабая.
Эта статья скорее предназначена для изучения взаимодействия PHP и MySQL
Но тем не менее статья довольно таки неплохая
За статью огромное спасибо
Для новичков самый раз

21. AlexSte / 21 ноября 2008, 14:06:37
+2 / -0
Мне нравитсяМне не нравится

Автор просто хотел ознакомить с методом редактирования базы.
но должен заметить возникли не большие глюки.

например..
выдавало ошибки о переменных $save и $delete :( ...
решается проблема просто - ставится знак @ перед пременной.. if(@$save).
также глюк ... нельзя удалить запись.., не выбрав её для редактирования :(

Решил проблему,
добавил кнопку УДАЛИТЬ, ... и всё заработало..
<input name="delete" type="submit" value="Удалить">

и добавил обновления странички... если была команда DELETE
if(@$delete) {
$sql =mysql_query ("DELETE FROM info WHERE id='".$_SESSION['id']."';");
echo "<META HTTP-EQUIV=Refresh content=0;URL=editor.php >";
}

Автор, спасибо за познавательную статью.... для начинающих то что надо..
Санкс!

22. [*]Frosty / 21 ноября 2008, 08:33:27
+1 / -0
Мне нравитсяМне не нравится

Цель стотьи иная - образовательная)
Вы глять пред-предыдущую статью - эта статья ее продолжение
Автар не хотел писать CMS - он на самом простом примере хотел показать, что такое CM2
2 Jackkum Эта статья не для такого заума как ты)

23. Jackkum / 30 октября 2008, 22:59:52
+3 / -0
Мне нравитсяМне не нравится

Я понимаю автора, иногда хочется создать что нибудь мощное. Но сейчас я думаю это делать уже поздно, не надо изобретать колесо когда его уже давно изобрели.
Лучше изучить структуру компонентов и модулей уже готовых CMS, например joomla, и писать новые компоненты и модули для них.
Joomla очень мощный движок, написание своих модулей для нее очень хорошая практика. Гибкость, многоязычность, использование шаблонов и др., всё это есть в jooml-е.
Автору этой статьи я бы посоветовал написать статьи о структуре готового движка, напримере той же jooml-ы, напиши о классах работы с БД, настройки модулей с помощью XML файлов. В общем, думаю на эту тему можно написать целую книгу.

24. Doubrovski / 01 октября 2008, 15:32:11
+2 / -1
Мне нравитсяМне не нравится

Хорошая статья, имхо.
Для человека, знакомого с PlSQL, FireBird достаточно просто описаны процедуры перехода на язык PHP & MySQL. Жду продолжения ... изобразить нечто подобное DbGrid для работы с полями записи.

25. Londeren / 23 сентября 2008, 17:14:10
+2 / -1
Мне нравитсяМне не нравится

статья ни о чем

26. e-Freeze / 23 сентября 2008, 16:26:53
+1 / -4
Мне нравитсяМне не нравится

Я так же согласен с tirasbiz: для написания собственного ЦМС необходимы довольно обширные знания проектирования как баз данных, так и ядра самой системы...

27. dobs / 19 сентября 2008, 15:59:24
+2 / -3
Мне нравитсяМне не нравится

Полностю согласен с tirasbiz данный скрипт не можно назвать полноценной CMS...

28. tirasbiz / 19 сентября 2008, 00:17:15
+8 / -7
Мне нравитсяМне не нравится

Достаточно серьезная тема и совсем несерьезный подход. ИМХО нечего плодить по инету дырявые CMS. Лучше пользовать готовые.
Должна быть серьезная теоритическая подготовка к проектированию реальных CMS. У Автора ее, судя по всему, нет.
Вообще, минимальные требования к CMS:
- модульность и масштабируемость
- шаблонизация
- система обновлений (самообновляемость)
- юзери, роли

Чайникам, которые не знают как работать с SQL нефиг вообще делать в области строительства CMS.

> Важно только понимать, что любые модули, любые действия в админке основаны на четырех главных операторах языка SQL...

Вообще убило.

Низачот.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог
бензотриммеры и насосные станции. , печи камины спб