Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Добавление новостей
 
 автор: Yevgeniy   (12.12.2005 в 10:59)   письмо автору
 
 

Недавно столкнулся со следующей проблеммой: для большей информативности добавил на свой сайт новостную страничку и потом осознал, что упустил один существенный момент - на всех уважающих себя проектах новости можно добавлять автоматически со специальной странички, а мне без базовых знаний php или java приходится каждый раз переписывать страничку наново, что занимает значительно больше времени и усилий ...

Решил воспользоватся php. Полистал учебник, но так пока и не разобрался. Знаю, что скрипт легкий, но пока осилить не могу.

Нужна обычна страничка, без авторизации (видеть ее буду только я) для добавления новостей по двум разделам на новостную страницу ...

Может мне кто-нибудь помочь?

   
 
 автор: elenaki   (12.12.2005 в 12:26)   письмо автору
5.3 Кб
 
   для: Yevgeniy   (12.12.2005 в 10:59)
 

вырезала блок администрирования новостей из проекта, которым сейчас занимаюсь.
если что непонятно или ошибки вылезут (не тестировала отдельно от проекта), спрашивайте.

   
 
 автор: Yevgeniy   (12.12.2005 в 12:41)   письмо автору
 
   для: elenaki   (12.12.2005 в 12:26)
 

>вырезала блок администрирования новостей из проекта, которым
>сейчас занимаюсь.
>если что непонятно или ошибки вылезут (не тестировала
>отдельно от проекта), спрашивайте.

А теперь объясните пожалуйста мне новичку: єти файлы шли сами по себе или как один файл html
мои познания очень бедные ...

Что с этими блоками теперь делать?

   
 
 автор: elenaki   (12.12.2005 в 12:48)   письмо автору
 
   для: Yevgeniy   (12.12.2005 в 12:41)
 

во-первых, у вас на сервере должен быть доступ к базе MySQL и PHP. без этого ничего
работать не будет - скрипт написан на PHP, новости хранятся в базе. можно, конечно,
сделать и в файлах хранение, но обработка все равно будет на PHP. у вас он есть на сервере?

   
 
 автор: Yevgeniy   (12.12.2005 в 12:53)   письмо автору
 
   для: elenaki   (12.12.2005 в 12:48)
 

есть раздел "База данных" на панели управления хостингом... Да и поддержка PHP должна быть
...
Попробовал создать базу данных: отписали, что база содана (Сервер баз данных:  
db1.ho.com.ua). Что с ней дальше-то делать?

   
 
 автор: elenaki   (12.12.2005 в 13:01)   письмо автору
 
   для: Yevgeniy   (12.12.2005 в 12:53)
 

надо создать таблицу:

CREATE TABLE 'news' (
  'id' tinyint(11) unsigned NOT NULL auto_increment,
  'lang' char(2) NOT NULL default '',
  'date' varchar(12) NOT NULL default '',
  'text_news' longtext NOT NULL,
  'active' char(1) NOT NULL default '',
  PRIMARY KEY  ('id')
) TYPE=MyISAM ;


там, где у меня поле для языка новости (lang) вы будете хранить имя или id раздела.

   
 
 автор: elenaki   (12.12.2005 в 13:08)   письмо автору
 
   для: elenaki   (12.12.2005 в 13:01)
 

что делают скрипты:
admin_news.php - выбирает из базы и выводит весь список новостей в виде N| язык(раздел)|
Дата| Новость (если длинная, можно только первые 50 символов выводить)| Активна или нет|
Кнопки Edit/Copy/Delete. конечно, постраничный вывод. кусок, где запрашиваются языки для
select, надо переделать в выбор разделов.
add_news.php - форма для ввода новости (выбор языка переделать в выбор раздела)
add_news_acc.php - занесение новости в базу, возвращение на admin_news.php
edit_news.php - форма для редактирования новости. выбирает новость из базы по id. выбор языка переделать в выбор раздела.
edit_news_acc.php - обновление новости в базе, возвращение на admin_news.php
copy_news - копирует новость с именем "copy of ...", возвращение на admin_news.php

   
 
 автор: Yevgeniy   (12.12.2005 в 13:09)   письмо автору
 
   для: elenaki   (12.12.2005 в 13:01)
 

попутный вопрос: создать где, создать в чем (извините за такое количество глупых вопросов)...

   
 
 автор: elenaki   (12.12.2005 в 13:14)   письмо автору
 
   для: Yevgeniy   (12.12.2005 в 13:09)
 

если у вас есть ControlPanel для вашего сайта, там должно быть средство управления
базой (phpMyAdmin обычно). если нет, надо запустить скриптик, создающий нужную таблицу.
не извиняйтесь за вопросы, никто не рождается со знанием PHP, мы тоже в свое время
спрашивали. сейчас кину код скрипта для создания таблицы.

   
 
 автор: Yevgeniy   (12.12.2005 в 13:20)   письмо автору
 
   для: elenaki   (12.12.2005 в 13:14)
 

в контрольной панели как раз и есть эта кнопочка "База данных", с комментарием к ней ...
чтобы не быть многословным, посмотрите скрины ...

   
 
 автор: Yevgeniy   (12.12.2005 в 13:21)   письмо автору
 
   для: Yevgeniy   (12.12.2005 в 13:20)
 

так выглядит панель управления ... если щелкнуть по кнопочке выводится окошко

   
 
 автор: Yevgeniy   (12.12.2005 в 13:21)   письмо автору
 
   для: Yevgeniy   (12.12.2005 в 13:21)
 

водишь пароль, выводится: ... и больше ничего ...

   
 
 автор: elenaki   (12.12.2005 в 13:35)   письмо автору
 
   для: Yevgeniy   (12.12.2005 в 13:21)
 


<?
$db_host
="";
$db_user="";
$db_password="";
$db_database="";

mysql_connect($db_host$db_user$db_password) or die(mysql_error());
$db mysql_select_db ($db_database) or die(mysql_error());

mysql_query '(CREATE TABLE "news" (
  "id" tinyint(11) unsigned NOT NULL auto_increment,
  "lang" char(2) NOT NULL default '',
  "date" varchar(12) NOT NULL default '',
  "text_news" longtext NOT NULL,
  "active" char(1) NOT NULL default '',
  PRIMARY KEY  ("id")
) TYPE=MyISAM AUTO_INCREMENT=7 ;)'
?>


в первые строки вставляете свои данные (узнайте у хостера), сохраняете файл с именем
create_table.php и запускаете его, набрав в броузере http://your_site/create_table.php
PS если есть кнопка "Создать базу", должна быть и кнопка "Создать таблицу" или ссылка на
phpMyAdmin. узнайте у хостера.

   
 
 автор: Yevgeniy   (12.12.2005 в 13:59)   письмо автору
 
   для: elenaki   (12.12.2005 в 13:35)
 

нашел ссылку на phpMyAdmin, зашел туда, и мне стало еще хуже :)
создание таблицы выглядит примерно вот так: ...
частично я с Вашими строками разобрался, но здесь параметров значительно больше, я ввел на пробу первую строчку - я ее ввел правильно?
Куда вводить короткие строки типа  PRIMARY KEY  ('id') или они формируюся автоматически (можно ли просмотреть эту таблицу в таком виде, как Вы ее мне прислали - было бы намного проще редактировать).

   
 
 автор: elenaki   (12.12.2005 в 14:11)   письмо автору
 
   для: Yevgeniy   (12.12.2005 в 13:59)
 

id лучше сделать INT(11), а то TinyInt кончится на 255

   
 
 автор: Yevgeniy   (12.12.2005 в 15:50)   письмо автору
 
   для: elenaki   (12.12.2005 в 14:11)
 

что-то получилось

CREATE TABLE 'news' (
'id' INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
'lang' CHAR( 2 ) NOT NULL ,
'date' VARCHAR( 12 ) NOT NULL ,
'text_news' LONGTEXT NOT NULL ,
'active' CHAR( 1 ) NOT NULL 
) TYPE = MYISAM ;

так?

   
 
 автор: elenaki   (12.12.2005 в 16:00)   письмо автору
 
   для: Yevgeniy   (12.12.2005 в 15:50)
 

ТАК. кстати, во всех скриптах в том архиве, который выше прикреплен, подключение к базе
осуществляется через config.inc.php. так что надо еще операцию провести, чтобы скрипты
заработали - сохранить эти строки как файл config.inc.php с вашими данными, разумеется.


<? 
$db_host
=""
$db_user=""
$db_password=""
$db_database=""

mysql_connect($db_host$db_user$db_password) or die(mysql_error()); 
$db mysql_select_db ($db_database) or die(mysql_error()); 

?>

   
 
 автор: Yevgeniy   (12.12.2005 в 17:06)   письмо автору
 
   для: elenaki   (12.12.2005 в 16:00)
 

Этот и другие файлы из архива надо разместить в каталоге со свеми остальными файлами сайта или в другом месте?

   
 
 автор: elenaki   (12.12.2005 в 18:32)   письмо автору
 
   для: Yevgeniy   (12.12.2005 в 17:06)
 

лучше в отдельной папке, на которую поставить защиту с помощью .htaccess

да, забыла самое главное - вывод новостей на сайт:

<? include "config.inc.php";?>
<?
$page_query = mysql_query("select * from news where lang='$interface_lang' and active='Y' order by date DESC") or die(mysql_error());
while ($page = mysql_fetch_array($page_query)){

$date = $page['date'];
$text = stripslashes($page['text_news']);

?>
<table>
<tr class="text">
<td align="left"><b>&middot;<?=$date?></b> - &nbsp;<?=$text?></td>
</tr>
</table>
<?}?>

тут тоже lang надо заменить на id раздела.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования