![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
GC |
|
|||
Unregistered |
Помогите люди добрые!
Я пишу новостной скрипт. Добовление новостей работает, а вот как заставить его изменять новость нинаю ![]() помогите пожалуйста! заранее спасибо. |
|||
|
||||
acp |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 4.2.2003 Где: Владимир Репутация: нет Всего: 2 |
Система основана на файлах?
Тогда: 1. Можно сделать для каждой новости твоей отдельный файл. При изменении новости считавать этот файл и перезаписывать его 2. А можно всё в один файл запихать. Новости разделять какими-нибудь символами типа "---". При изменении новости опять же перезаписывать весь файл. PS: не совсем пойму в чём проблема... |
|||
|
||||
GC |
|
|||
Unregistered |
Да, acp система основана на файлах, новости храняться в одном .тхт файле.
проблема в том что когда перезаписываеться весь фаил то новости или удаляються или на все строки пишеться одна (та которая была изсменена). дата:строка первая дата:строка вторая дата:строка третья после редактирования допустем второй строки получаеться дата:строка вторая дата:строка вторая дата:строка вторая ![]() |
|||
|
||||
acp |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 4.2.2003 Где: Владимир Репутация: нет Всего: 2 |
Ну приведи кусок кода, который это реализует. Если он не большой. Неправильно просто у тебя что-то и всё...
|
|||
|
||||
Devorior |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 559 Регистрация: 1.8.2002 Где: Обнинск Репутация: 1 Всего: 3 |
действительно, код напиши...у тебя наверное запись в файл неправильно идет
|
|||
|
||||
GC |
|
|||
Unregistered |
<form method="POST" action="1.php">
<? $fp = file("news.dat"); for ($i = 0; $i <= count($fp); $i++) { list($d_date,$n_news) = explode(":",$fp[$i]); if(strlen($d_date) > 0) { $n_news = ereg_replace("<br>","\r\n",$n_news); print "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"400\"> <tr> <td colspan=\"2\"><input name=\"date\" type=\"text\" value=\"$d_date\" style=\"width: 300\"> номер: $i</td> </tr> <tr> <td colspan=\"2\" align=\"center\"><textarea name=\"news\" rows=10 cols=20 style=\"width: 400\">$n_news</textarea></td> </tr> <tr> <td colspan=\"2\" align=\"center\"> </td> </tr> <tr> <td width=\"200\" align=\"center\"><input type=\"submit\" value=\"изменить\" style=\"width: 100\" name=\"B\"></td> <td width=\"200\" align=\"center\"><input type=\"submit\" value=\"удалить\" style=\"width: 100\" name=\"b\"></td> </tr> </table><br><br>\n"; } } if ($B == "изменить") { $editfile = fopen ("news.dat","w"); $news = ereg_replace("\r\n","<br>",$news); fputs($editfile,"$date:$news\n"); fclose($editfile); print "<script LANGUAGE=\"javascript\">window.location.href = \"1.php\"</SCRIPT>"; } ?> </form> формат записи в фаил такой: date:news |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
А че страдать то ? Я тож делаю новостную ленту на файлах, проще и удобней записывать - один файл одна новость, а название файла есть дата, там вроде 17.03.03 ... а изменять это проще простого ! Просто читаешь его весь и выводишь в форму, со всеми вытикающими от сюдого ...редактируешь, ну и отправляешь потом на сервер и файл перезаписывается !
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Devorior |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 559 Регистрация: 1.8.2002 Где: Обнинск Репутация: 1 Всего: 3 |
делай как Iz@top, потом легче будет
|
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Devorior Спасиб
![]() -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
y.s.grin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.3.2003 Репутация: нет Всего: нет |
А я вот сделал так.
В одном файле тело новостное в виде двумерного массива. Там сколько хочешь можно характеристик сделать для новости(сама новость, дата, название новости, сопутствующая ссылка и так далее...) А другой файл это всё дело просматривает |
|||
|
||||
y.s.grin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.3.2003 Репутация: нет Всего: нет |
И тело новостное изменяй хоть до посинения
|
|||
|
||||
Devorior |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 559 Регистрация: 1.8.2002 Где: Обнинск Репутация: 1 Всего: 3 |
y.s.grin, а с базой еще круче можно сделать
![]() |
|||
|
||||
y.s.grin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.3.2003 Репутация: нет Всего: нет |
2Devorior
ты прав. ![]() |
|||
|
||||
Foxx |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 19.3.2003 Где: Новосибирск Репутация: нет Всего: нет |
if ($B == "изменить") { $news = ereg_replace("\r\n","<br>",$news); $editfile = fopen ("news.dat","a+"); fputs($editfile,"$date:$news\n"); fclose($editfile); } Файл открывается в режиме записи и чтения, указатель устанавливается на последний байт, содержимое не уничтожается! Этот режим полезен если НУЖНО ЧТО_ЛИБО ДОПИСАТЬ В ФАЙЛ Небольшое замечание. В качестве разделителя лучше не использовать двоеточие. Я обычно пользуюсь "|" или "::". Таких символов точно нет в сообщении ![]() Это сообщение отредактировал(а) Foxx - 19.3.2003, 00:40 |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Foxx А как дописать в начало файла ? я пробовал с r+ но вот беда верхнея строчка убивалась ...
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |