В этом уроке мы будем рассматривать простой способ реализовать новости на вашем сайте, используя только 3 различных сценария PHP.

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

1.1 Создание MySQL таблиц


Начнем мы с создания необходимых таблиц в БД для новостей. Каждая новость будет включать в себя заголовок, описание, имя автора, e-mail автора, дату и время, а так же уникальный идентификационный номер, чтобы идентифицировать каждую новость. Теперь мы готовы создать таблицы, используя следующий код:

CREATE TABLE news (
   id smallint(5) unsigned NOT NULL auto_increment,
   headline text NOT NULL,
   story text NOT NULL,
   name varchar(255),
   email varchar(255),
   timestamp datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
   PRIMARY KEY (id)
); 

Таблицы созданы, теперь мы можем перейти к реальному кодингу.

2.1 Добавление новости в базу данных: Создание формы


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

<form name="form1" method="post" action="<? echo $PHP_SELF; ?>">
  <table width="50%" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td width="50%">Name</td>
      <td><input name="name" type="text" id="name"></td>
    </tr>
    <tr>
      <td>Email</td>
      <td><input name="email" type="text" id="email"></td>
    </tr>
    <tr>
      <td> </td>
      <td> </td>
    </tr>
    <tr>
      <td>Headline</td>
      <td><input name="headline" type="text" id="headline"></td>
    </tr>
    <tr>
      <td>News Story</td>
      <td><textarea name="story" id="story"></textarea></td>
    </tr>
    <tr>
      <td colspan="2"><div align="center">
          <input name="hiddenField" type="hidden" value="add_n">
          <input name="add" type="submit" id="add" value="Submit">
        </div></td>
    </tr>
  </table>
  </form> 

Теперь сохраните это как add.php и загрузите его в вашем браузере. Вы должны увидеть все поля, но если вы нажмете добавить, ничего не происходит. Это потому, что не какой код не выполняет сценарий, чтобы использовать информацию, так что это просто перезагрузка формы. Скрытое поле в форме очень важно, и мы будем рассматривать это в следующем шаге. Вы, возможно, заметили, что переменная $PHP_SELF, все это делает, что-бы, когда вы нажмете добавить, будет перезагрузка страницы с текущей информацией. Теперь давайте начнем кодирование.

2.2 Добавление новости в базу данных: Добавление новости


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

<?
if(isset($add_n){
    //Run the script
}else{
    //Load the form
}
?> 

Теперь для фактического сценария, мы создадим подключение к базе данных:

 $link = @mysql_connect(localhost, username, password);
if(!$link){
   echo('Error connecting to the database: ' . $mysql_error());
   exit();
}
$db = @mysql_selectdb('mydatabase');
if(!$db){
   echo('Error selecting database: ' . $mysql_error());
   exit();
}

Этот скрипт подключается к базе данных и выбирает ее, но если не удается подключиться, он будет выводить сообщение об ошибке. Символ @ просто подавляет сообщения об ошибке по умолчанию, поэтому мы можем объявить наш собственный. Теперь, когда мы соединены, можно добавить данные в базу данных в качестве новой строки. Следующий код будет делать это безболезненно:

$query = "INSERT INTO news(name, email, headline, story, timestamp)VALUES('$name', '$email', '$headline', '$story', NOW())";
$result = @mysql_query($query);
if(!$result){
   echo('Error adding news: ' . $mysql_error());
   exit();
}else{
mysql_close($link);
echo('Success!<br><a href="add.php">Click here</a> to add more news.<br><a href="edit.php">Click here</a> to edit news.<br><a href="../index.php">Click here</a> to return to the main page.');
} 

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

2.3 Добавление новости в базу данных: Финал


Вот так, должен выглядеть ваш add.php:

<html>
<head>
<title>Add News</title>
<meta http-equiv="Content-Type" content="text/html; charset="iso"-8859-1">
</head>

<body>
<?
if(isset($add_n)){
   $link = @mysql_connect(localhost, username, password);
   if(!$link){
      echo('Error connecting to the database: ' . $mysql_error());
      exit();
   }
   $db = @mysql_selectdb('mydatabase');
   if(!$db){
      echo('Error selecting database: ' . $mysql_error());
      exit();
   }
   $query = "INSERT INTO news(name, email, headline, story, timestamp)VALUES('$name', '$email', '$headline', '$story', NOW())";
   $result = @mysql_query($query);
   if(!$result){
      echo('Error adding news: ' . $mysql_error());
      exit();
   }else{
   mysql_close($link);
   echo('Success!<br><a href="add.php">Click here</a> to add more news.<br><a href="edit.php">Click here</a> to edit news.<br><a href="../index.php">Click here</a> to return to the main page.');
   }
}else{
?>
<form name="form1" method="post" action="<? echo $PHP_SELF; ?>">
  <table width="50%" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td width="50%">Name</td>
      <td><input name="name" type="text" id="name"></td>
    </tr>
    <tr>
      <td>Email</td>
      <td><input name="email" type="text" id="email"></td>
    </tr>
    <tr>
      <td> </td>
      <td> </td>
    </tr>
    <tr>
      <td>Headline</td>
      <td><input name="headline" type="text" id="headline"></td>
    </tr>
    <tr>
      <td>News Story</td>
      <td><textarea name="story" id="story"></textarea></td>
    </tr>
    <tr>
      <td colspan="2"><div align="center">
          <input name="hiddenField" type="hidden" value="add_n">
          <input name="add" type="submit" id="add" value="Submit">
        </div></td>
    </tr>
  </table>
  </form>
<? } ?>
</body>
</html> 

3.1 Редактирование/Удаление новостей: Вывод элементов новостей на странице


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

<?
if(!isset($a){
   // Print news
}elseif($a == 'edit'){
   // Perform edit procedures
}elseif($a == 'delete'){
   // Delete the news item
}
?> 

Давайте начнем с вывода всех новостей. Мы должны сделать подключение к базе данных (например, как в add.php) и выбрать все строки. Код будет выглядеть примерно так:

$link = @mysql_connect(localhost, username, password);
if(!$link){
   echo('Error connecting to the database: ' . $mysql_error());
   exit();
}
$db = @mysql_selectdb('mydatabase');
if(!$db){
   echo('Error selecting database: ' . $mysql_error());
   exit();
}
$query = "SELECT id, headline, timestamp FROM news ORDER BY timestamp DESC";
$result = @mysql_query($query);
if(!$result){
   echo('Error selecting news: ' . $mysql_error());
   exit();
}

Это выбирает все новости из базы данных, теперь мы должны вывести это на странице.

Давайте начнем с вывода всех новостей. Мы должны сделать подключение к базе данных (например, как в add.php) и выбрать все строки. Код будет выглядеть примерно так:

if (mysql_num_rows($result) > 0){
    while($row = mysql_fetch_object($result))
    {
    ?>
   <font size="-1"><b><? echo $row->headling; ?></b> <i><? echo formatDate($row->timestamp); ?></i></font>
   <br>
   <font size="-2"><a href="edit.php?a=edit&id=<? echo $row->id; ?>">edit</a> |
   <a href="edit.php?a=delete&id=<? echo $row->id; ?>">delete</a></font>
    <?
}else{
   ?>
   <font size="-2">No news in the database</font>
<? }
   mysql_close($link);
?>

Этот сценарий принимает результаты запроса, и выводит их на странице, while() создает цикл, пока есть не больше строк для выборки. mysql_fetch_object() принимает данные и обрабатывает их в форме для печати. Оператор -> в основном берет этот столбец из строки, которой в настоящее время. Так что теперь у нас есть все новости, поданных на странице с редактированием и удалением… Начнем редактировать эти новости.

3.2 Редактирование/Удаление новостей: Редактирование новостей


Эта часть сценария будет появляться, когда $a равна 'Edit'. За $ID были отправлены со ссылкой, так что все мы должны сделать сейчас, это принесет другие данные, которые связанные с этим ID. Вот как это выглядит:

if(!isset($update)){
$link = @mysql_connect(localhost, username, password);
if(!$link){
   echo('Error connecting to the database: ' . $mysql_error());
   exit();
}
$db = @mysql_selectdb('mydatabase');
if(!$db){
   echo('Error selecting database: ' . $mysql_error());
   exit();
}
$query = "SELECT name, email, headline, story FROM news WHERE id = '$id'";
$result = @mysql_query($query);
if(!$result){
   echo('Error selecting news item: ' . $mysql_error());
   exit();
}
mysql_fetch_object($result);
?>
<form name="form1" method="post" action="edit.php?a=edit&id=<? echo($id) ?>&update=1">
  <table width="50%" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td width="50%">Name</td>
      <td><input name="name" type="text" id="name" value="<? echo($row->name) ?>"></td>
    </tr>
    <tr>
      <td>Email</td>
      <td><input name="email" type="text" id="email" value="<? echo($row->email) ?>"></td>
    </tr>
    <tr>
      <td> </td>
      <td> </td>
    </tr>
    <tr>
      <td>Headline</td>
      <td><input name="headline" type="text" id="headline" value="<? echo($row->headline) ?>"></td>
    </tr>
    <tr>
      <td>News Story</td>
      <td><textarea name="story" id="story" value="<? echo($row->story) ?>"></textarea></td>
    </tr>
    <tr>
      <td colspan="2"><div align="center">
          <input name="hiddenField" type="hidden" value="update">
          <input name="add" type="submit" id="add" value="Update">
        </div></td>
    </tr>
  </table>
  </form>
<?
} 

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

else{
$query = "UPDATE news SET name = '$name, email = '$email', headline = '$headline', story = '$story', timestamp = NOW() WHERE id = '$id';
$result = @mysql_query($query);
if(!$result){
   echo('Error updating news item: ' . $mysql_error());
   exit();
}else{
   mysql_close($link);
   echo('Update successful!');
}
} 

Обратите внимание, здесь, заявление SQL, приходит после SET. Это вызывает много путаницы у многих программистов. Это завершает Редактирование части новостей, теперь давайте посмотрим на удаление новостей.

3.3 Редактирование/Удаление новостей: Удаление новостей


Удаление новостей даже легче, чем редактирование, или даже создание новости. Функция удаления является одним MySQL запросом, который удаляет новость, где ID равно ID новостей. Вот как это выглядит:

$link = @mysql_connect(localhost, username, password);
if(!$link){
   echo('Error connecting to the database: ' . $mysql_error());
   exit();
}
$db = @mysql_selectdb('mydatabase');
if(!$db){
   echo('Error selecting database: ' . $mysql_error());
   exit();
}
$query = "DELETE FROM news WHERE id = '$id'";
$result = @mysql_query($query);
if(!$result){
   echo('Error deleteing news item: ' . $mysql_error());
   exit();
}
mysql_close($link);
echo('News item deleted.');
?> 

Там, что завершает весь сценарий edit.php. Теперь вы можете сохранить и запустить его для редактирования новости. Полный сценарий может быть виден ниже.

3.3 Редактирование/Удаление новостей: Финал


Вот, так:

<html>
<head>
<title>Edit News</title>
<meta http-equiv="Content-Type" content="text/html; charset="iso"-8859-1">
</head>

<body>
<?
if(!isset($a){
$link = @mysql_connect(localhost, username, password);
if(!$link){
   echo('Error connecting to the database: ' . $mysql_error());
   exit();
}
$db = @mysql_selectdb('mydatabase');
if(!$db){
   echo('Error selecting database: ' . $mysql_error());
   exit();
}
$query = "SELECT id, headline, timestamp FROM news ORDER BY timestamp DESC";
$result = @mysql_query($query);
if(!$result){
   echo('Error selecting news: ' . $mysql_error());
   exit();
}
if (mysql_num_rows($result) > 0){
    while($row = mysql_fetch_object($result))
    {
    ?>
   <font size="-1"><b><? echo $row->headling; ?></b> <i><? echo formatDate($row->timestamp); ?></i></font>
   <br>
   <font size="-2"><a href="edit.php?a=edit&id=<? echo $row->id; ?>">edit</a> |
   <a href="edit.php?a=delete&id=<? echo $row->id; ?>">delete</a></font>
    <?
}else{
   ?>
   <font size="-2">No news in the database</font>
<? }
   mysql_close($link);
}elseif($a == 'edit'){
if(!isset($update)){
$link = @mysql_connect(localhost, username, password);
if(!$link){
   echo('Error connecting to the database: ' . $mysql_error());
   exit();
}
$db = @mysql_selectdb('mydatabase');
if(!$db){
   echo('Error selecting database: ' . $mysql_error());
   exit();
}
$query = "SELECT name, email, headline, story FROM news WHERE id = '$id'";
$result = @mysql_query($query);
if(!$result){
   echo('Error selecting news item: ' . $mysql_error());
   exit();
}
mysql_fetch_object($result);
?>
<form name="form1" method="post" action="edit.php?a=edit&id=<? echo($id) ?>&update=1">
  <table width="50%" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td width="50%">Name</td>
      <td><input name="name" type="text" id="name" value="<? echo($row->name) ?>"></td>
    </tr>
    <tr>
      <td>Email</td>
      <td><input name="email" type="text" id="email" value="<? echo($row->email) ?>"></td>
    </tr>
    <tr>
      <td> </td>
      <td> </td>
    </tr>
    <tr>
      <td>Headline</td>
      <td><input name="headline" type="text" id="headline" value="<? echo($row->headline) ?>"></td>
    </tr>
    <tr>
      <td>News Story</td>
      <td><textarea name="story" id="story" value="<? echo($row->story) ?>"></textarea></td>
    </tr>
    <tr>
      <td colspan="2"><div align="center">
          <input name="hiddenField" type="hidden" value="update">
          <input name="add" type="submit" id="add" value="Update">
        </div></td>
    </tr>
  </table>
  </form>
<?
}else{
$query = "UPDATE news SET name = '$name, email = '$email', headline = '$headline', story = '$story', timestamp = NOW() WHERE id = '$id';
$result = @mysql_query($query);
if(!$result){
   echo('Error updating news item: ' . $mysql_error());
   exit();
}else{
   mysql_close($link);
   echo('Update successful!');
 }
}elseif($a == 'delete'){
$link = @mysql_connect(localhost, username, password);
if(!$link){
   echo('Error connecting to the database: ' . $mysql_error());
   exit();
}
$db = @mysql_selectdb('mydatabase');
if(!$db){
   echo('Error selecting database: ' . $mysql_error());
   exit();
}
$query = "DELETE FROM news WHERE id = '$id'";
$result = @mysql_query($query);
if(!$result){
   echo('Error deleteing news item: ' . $mysql_error());
   exit();
}
mysql_close($link);
echo('News item deleted.');
} ?>
</body>
</html> 

4.1 Просмотр новости: просмотр новости на Главной странице


Верьте или нет, но вы уже написали этот модуль, когда вы написали редактирование/edit.php. Код в основном такой же без «редактировать | удалить „ссылки. Здесь в полном виде:

<html>
<head>
<title>View News</title>
<meta http-equiv="Content-Type" content="text/html; charset="iso"-8859-1">
</head>
<body>
<?
$link = @mysql_connect(localhost, username, password);
if(!$link){
   echo('Error connecting to the database: ' . mysql_error());
   exit();
}
$db = @mysql_selectdb('mydatabase');
if(!$db){
   echo('Error selecting database: ' . mysql_error());
   exit();
}
$query = "SELECT id, headline, timestamp FROM news ORDER BY timestamp DESC";
$result = @mysql_query($query);
if(!$result){
   echo('Error selecting news: ' . mysql_error());
   exit();
}
if (mysql_num_rows($result) > 0){
    while($row = mysql_fetch_object($result))
    {
    ?>
   <font size="-1"><b><? echo $row->headling; ?></b> <i><? echo formatDate($row->timestamp); ?></i></font>
    <?
    }
}else{
   ?>
   <font size="-2">No news in the database</font>
<? }
   mysql_close($link); ?>
</body>
</html> 

5.1 Итоги


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

Автор: seetch | Михаил Нечипуренко

Комментарии (47)


  1. Rastishka
    23.11.2015 19:06
    +21

    Блин, я аж на дату поста посмотрел, вдруг статья не из этого века…


    1. merkushin
      23.11.2015 19:12
      +3

      Аналогично.
      Я даже беглым просмотром заметил использование коротких тегов, которые уже не поддерживаются и расширения mysql_*, смешивание представления и логики, register_globals.
      Такое нельзя показывать начинающим. Боюсь вчитываться.


      1. theRavel
        23.11.2015 20:08
        +1

        В какой версии короткие теги не поддерживаются?


        1. SerafimArts
          23.11.2015 20:30
          +3

          Ребята перегнули немного, просто отключены по-умолчанию везде, начиная с какой-то очень древней версии. В последней версии вырезали только asp и script способы (https://wiki.php.net/rfc/remove_alternative_php_tags).

          Но использование таких тегов (укороченных) не только противоречит всем существующим популярным стандартам, но и может доставить очень много проблем: https://ru.wikipedia.org/wiki/XML


          1. Alexufo
            23.11.2015 22:29
            -3

            ну прям очень много проблем с xml. Есть вообще кто с этим сталкивался? Что там не получается?) Заголовок xml интерпретируется чтоли и все?) И из-за этого совсем не юзать короткие теги?


            1. SerafimArts
              23.11.2015 22:57
              +3

              А этого недостаточно? Ну помимо вышеуказанных нарушений стандартов (ну хотя бы: http://www.php-fig.org/psr/psr-1/ru/) и принципиальной непереносимости кода из-за трёх буковок.


              1. Alexufo
                23.11.2015 23:15
                -2

                Много говорят об xml о ужас, но пока никто лично, судя по всему, никто не сталкивался. Что там такого нерешаемого я не понимаю. Заголовок xml является строкой и оформляется как строка, если не хочется отдавать его через header().
                Что касается стандарта я за, только не стандарт ради стандарта. А то мы теряем смысл. Не ужтоль так важно вбивать php после <? из за страха перед xml. Если сообщество требует — нужно писать. Если вы выступаете в общественном проекте. А если свой ну… ну ладно ну как припрет так сразу search and replace и работаем дальше.
                Просто у меня работает простая логика — короче = проще.


                1. SerafimArts
                  24.11.2015 01:17
                  +5

                  Важно потому, что подобное можно позволить лишь на персональной VDS поднятой для сугубо персональных нужд, которые никому потом никогда не будешь показывать. Ну т.е. как троллейбус из буханки — можно, но совершенно бессмысленно, когда любая ide (и наверняка многие популярные текстовые редакторы) сама проставляет всё нужное или на автокомплите просто висит.

                  P.S. Честно, лично я сталкивался с этой проблемой (в xml), да, давно, когда слабо понимал язык, если не путаю — при генерации sitemap, именно по-этому так и привязался к подобной проблеме, т.к. это реально возможно на практике. Теперь, уже с опытом понятно что подобные стандарты нужны не только ради стандартов. И пресловутые шорт-теги, и опускание закрывающего "?>", и отсутствие bom в utf-8 файлах, и даже способ именования классов\констант\методов\проч. — это всё важно, даже когда кажется что это просто излишняя педантичность. Сам прошёл через некоторую часть граблей, описанных в стандарте и желаю никому не наступать на подобное.

                  Более того — в чём смысл каждый раз менять стилистику? Приходишь на работу — пишешь PSR, приходишь домой — пишешь отсебятину, решил опубликовать — приходится всё переписывать, т.к. автоформаттер далеко не всё умеет выправлять. Просто взять в привычку писать правильно и подобных «переусложнений», включая обязательные «public» именования видимости даже не замечаешь. Более того — даже phpdoc аннотации на автомате уже пишутся, благо шторм их сам автокомпилитит после слеша и двойной звёздочки.


                  1. Alexufo
                    24.11.2015 01:21

                    яж совсем не против PSR :-)


                1. symbix
                  24.11.2015 01:20
                  +1

                  Да чего тут обсуждать? Первая строчка <?php вставляется автоматически IDE или редактором, а больше нигде и не должно быть надо — см. в том же psr-1 про side effects.


        1. merkushin
          23.11.2015 21:42

          Прошу прощения, они, действительно, до сих пор не выпилены. Но их использование нежелательно (по-моему, их уже довольно давно обещают выпилить-таки). Ну, и PSR их тоже не приветствует, мягко говоря.


        1. Alexufo
          23.11.2015 22:27
          +1

          тег <? по умолчанию включен в php 5.6, (пробовал в консоли сейчас со скаченного дистрибутива) а с 5.4 запись <?= стала доступна всегда.


          1. Alexufo
            23.11.2015 22:32

            вру. эт в консоли значит так, а в php.ini short_open_tag = Off но <?= все равно доступна


            1. SerafimArts
              23.11.2015 23:02

              В консоли тоже отключён. Предлагаю сбросить php.ini на дефолтный и проверить ещё раз. Должно быть так вроде такого (только что проверил):

              C:\Users\Serafim\Desktop>C:\Development\lang\php5.5_x64ts\php.exe 1.txt
              <? echo 23;
              
              C:\Users\Serafim\Desktop>C:\Development\lang\php5.6_x86ts\php.exe 1.txt
              <? echo 23;
              
              C:\Users\Serafim\Desktop>C:\Development\lang\php7.0rc_x64ts\php.exe 1.txt
              <? echo 23;
              


              Ниже 5.5 у меня в наличии, увы, нет, но смысла проверять на неподдерживаемых версиях думаю не много.


              1. Alexufo
                23.11.2015 23:24

                да, я php.ini вобще и не подключал — без него работает :-) то что <?= в стандарте это уже многое.


                1. zelenin
                  24.11.2015 01:56

                  настройка short tags отключена по умолчанию и влияет только на <?
                  <?= работает всегда, независимо от настроек. (5.4+)


                  1. Alexufo
                    24.11.2015 01:58

                    да. Я просто нераскоменчивал php.ini, а если нераскоменчивать то <? работает.


                    1. zelenin
                      24.11.2015 02:04

                      в 5.4+ по умолчанию НЕ работает.


                      1. Alexufo
                        24.11.2015 02:13

                        да я про это. где обманулся

                        Заголовок спойлера
                        image


  1. ilfate
    23.11.2015 19:15
    +1

    На фоне релиза PHP7 "@mysql_connect" выглядит особенно забавно! :)
    Но я не стал бы критиковать автора, все с чего-то начинали. И я бы свой код многалетней давности не хотел бы тут показывать. Жаль что парня заминусуют…


    1. merkushin
      23.11.2015 19:17

      Предполагаю, что автор сам новичок и учится по самоучителям десятилетней давности.


      1. Rastishka
        23.11.2015 19:22
        +1

        Если дата рождения у автора выставлена правильно, предлагаю его хотя бы не минусить.


        1. romy4
          23.11.2015 19:37
          +3

          Автор хотя бы сменил подпись с разработчика на что-нибудь типа noobie. А то за разработчика с таким кодом по головке не погладят.


        1. Delphinum
          23.11.2015 20:13

          Интересный способ защититься от слива кармы )


  1. Skull
    23.11.2015 19:17
    +6

    Вспомнил детство, прослезился.


  1. edogs
    23.11.2015 19:19
    +3

    Спасибо, поностальгировали.


  1. tvolf
    23.11.2015 19:22

    А вот интересно. mysql_selectdb — есть такая функция в PHP? Я знаю только о mysql_select_db (со вторым знаком подчеркивания).


  1. izac
    23.11.2015 19:24
    +5

    Верните мой 2000


    1. markoffko
      23.11.2015 22:50
      +1

      Автор как раз 2000 года рождения.


      1. myrrec
        24.11.2015 08:22

        Ну, не надо всех судить по году рождения. Я, как ни странно, тоже 2000 года рождения, но, в отличие от автора, так не пишу, смешивая и PHP и HTML в одном файле.


  1. mmjurov
    23.11.2015 19:30
    +1

    Сегодня пятница?


  1. Scat
    23.11.2015 19:41
    +3

    Начинание хорошее, но впереди море работы. Сейчас такой формат написания кода не актуален, подобных статей в интернете огромное количество, так что это уже «не формат» для хабры.
    Если этим будешь заниматься дальше, то посмотри в сторону MVC и фреймворков вроде Symfony. На первый взгляд будет казаться, что ничего непонятно, но со временем поймешь, что это реально удобнее.

    Так же посмотри в сторону frontend фреймворков для создания интерфейсов и как их связывать с backend.

    И обнови PHP у себя на рабочей тачке :) А то пользуешься функциями, которые уже не поддерживатюся


    1. izac
      23.11.2015 20:22

      Во 1, до 7 mysql_connect ешё поддерживается. Во 2 почему Symfony? почему не CI, ZF, Laravel?


      1. SerafimArts
        23.11.2015 20:39
        +2

        Кидается депрекейтед-ошибками — можно уже считать что не поддерживается, просто дали время подправить код и «не поддерживать» в нём тоже.

        По поводу второго, я лично против Symfony для новичка, этот фрейм подойдёт любителям очень хорошей абстракции (излишней иногда) и качества кода в целом. Идеальный вариант, по-моему — это Laravel версии 4.2. Именно 4-ки, т.к. 5+ довольно сильно выросла и поменяла идеологию подхода к разработке — DI вместо «фасадов», что может затруднить понимание основ MVC.


  1. Delphinum
    23.11.2015 20:14
    +4

    Теперь вы узнали, как создать модуль новостей

    Эпично )


    1. ddem
      24.11.2015 09:08

      Вы дочитали?)


  1. thunderspb
    23.11.2015 20:26
    +3

    Скорее узнали как НЕ надо создавать модуль новостей


  1. AlexLeonov
    23.11.2015 20:57
    +4

    Уберите это с хабра!


  1. medved6216
    23.11.2015 21:06
    +1

    Как «ЭТО» могли пропустить из песочницы?!
    seetch, изучите для начала основы ООП или функционального программирование.


  1. k0ldbl00d
    23.11.2015 22:09
    -1

    Фреймворки? Не, не слышал!


  1. duke_nu
    23.11.2015 23:58
    -1

    Да ладно вам господа, для изучения может и сойдет. Единственное, копипастить надо было из книжки, где пример с валидацией переменных )


  1. AlexGx
    24.11.2015 00:05
    +1

    Сначала подумал что выбило статью из 2006 года. Печаль-беда(((


  1. BlessMaster
    24.11.2015 00:40
    +3

    Поздравим исследовательский коллектив: эксперимент по крионированию с последующей разморозкой завершён успешно.

    http://www.dmxzone.com/go/4114/creating-a-news-module-using-php-and-mysql/


    1. Suvitruf
      24.11.2015 01:33
      +1

      2002 год…


    1. antoo
      24.11.2015 01:54

      При этом топик даже не оформлен как перевод, да и авторство в конце статьи ТС присвоил себе. Вот даже чисто такое поведение достойно минуса, не говоря уже об актуальности и качестве самой статьи.


  1. coylOne
    24.11.2015 00:45

    Шедевр! =) Это как Пахом на битве экстрасенсов!


  1. BusteR27
    24.11.2015 09:17

    Пожалуйста, уберите это в черновики перед уходом в школу