Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Редактирование новости
Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010 Откуда: Киров
Помог: 6 раз(а)
Нет, невнятно.
Libiros пишет:
Я думаю, что если получится поставить указатель, то всё получится.
Что должно получиться? (Добавление) garvey, какой наик explode()? У него файл считывается функцией file(), следовательно $List - это уже готовый массив со строками!
. Я должен отредактировать и нажать "Отправить". НО! Как дать программе понять, куда нужно поставить указатель?
Я пробовал ставить указатель так - fseek($f,$List[2]); , но ничего не выходит, он редактирует самую первую новость.
Uchkuma
Отправлено: 26 Августа, 2010 - 18:21:56
Участник
Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010 Откуда: Киров
Помог: 6 раз(а)
Не трогайте fseek(). Вы считали файл, получили массив со строками. Отредактировали нужный элемент массива (строку) и теперь записывайте содержимое массива обратно в файл. Для этого можете пройтись в цикле по массиву, записывая данные в файл построчно.
И еще, если попробуете мне ответить, зачем вы использовали функцию fflush() в своем скрипте, то, скорее всего, поймете, что она там не нужна.
garvey
Отправлено: 26 Августа, 2010 - 18:33:51
Частый посетитель
Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010 Откуда: Minsk
Помог: 3 раз(а)
Uchkuma, топикстартер, наверное, не хочет записывать содержимое файла заново. А если у нас 1000000 строк? Мы изменим один символ, и запишем всё с нуля?
Да и вообще, что за детский сад хранить данные такого типа в файлах?
Покинул форум
Сообщений всего: 17
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Пока не знаю MySQL, то стараюсь так.
Получилось осуществить задуманное, путём создания нового файла для каждой новости
LEONeso
Отправлено: 27 Августа, 2010 - 02:21:19
Посетитель
Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010 Откуда: Россия, Москва
Помог: 1 раз(а)
ну по поводу добавления в БД
я не спец, но там ничего сложного нет и вполне все понятно ,если не читать слишком заумные мануалы, где рассчитано, на более опытных.
допустим у нас есть база данных 'name', для начала надо подключиться к базе:
if(isset($_POST['add'])||isset($_POST['save'])||isset($_POST['edit'])||isset($_POST['save_edit']))//метод POST, указываем события.
{}else{/*тут html разметка на случай, если ни одно из условий не выполнено*/}
данные будут передаваться методом _POST, можно и _GET, но на стадии написания скрипта, для наглядности. Стоит обратить внимание, что условия выполняются поочередно т.е. проверяется каждое и если все дают лож, то выводится else.
isset - проверка на существование переменной.
далее добавляем html разметку. В примере укажу простую, но все делается по аналогии. У меня будет так:
Заголовок: input
button:Добавить button:Отмена
Теперь когда форма добавления сделана, нужно подумать о базе данных =)
Создаем таблицу в БД. Можно установить Денвер. И зайти в http://localhost/Tools/phpMyAdmin
Теперь создаем базу данных ,если она еще не создана.
в форме Создать новую БД вводим имя базы данных name и жмакаем по кнопке "создать".
В левом столбце, выбираем нашу базу данных name и создаем новую таблицу.
Форма создания новой таблицы, находится снизу.
Вводим имя таблицы, пусть будет 'news' - без ковычек
Теперь вводим кол-во полей, потребуется 2 поля в нашем примере - это id и title.
Как только ввели имя: news и поля: 2
Нажимаем на кнопку "Пошел".
Перед нами появится форма для заполнения.
В столбце "Поле" - вводим id в первом и title во втором.
Мы обозвали поля они же ячейки таблицы БД, которые будут заполняться нашими данными. Теперь выставим остальные параметры:
Поле: id
Тип: int
Дополнительно: auto_increment
radio точку, на "Первичный"
Поле: title
Тип: VARCHAR
Длины/Значения*: 255
Как только все выставлено, нажимаем на кнопку "Сохранить".
Теперь можно на время забыть о базе данных. Таблица создана.
if(isset($_POST['add'])||isset($_POST['edit'])||isset($_POST['save'])||isset($_POST['del']))//метод POST, указываем события (добавить, редактировать, сохранить и удалить).
1. Условие на title - если найден _POST['title'], то создаем переменную title и проверяем её, что она не пустая, если пустая, то удаляем переменную title.
2. Условие add - делаем запись в базе данных, если _POST['add'] и $title существуют.
3. Внутри проверка результата на "истину".
4. и вывод ошибки, в случае, если нарушены условия.
--
Ну собственно остальное по аналогии.
Простоя меняются условия.
Хотел все дописать до конца, но мой код будет кривой и на это уйдет прилично времени, когда в интернете, есть более точные примеры.
Вывод данных из базы можно сделать таким, с функцией удаления. Все кошмарно, но все таки, работает =)
if(isset($_POST['add'])||isset($_POST['edit'])||isset($_POST['save'])||isset($_POST['del']))//метод POST, указываем события (добавить, редактировать, сохранить и удалить).
{
//кривое условие - если найден del, то это переменная id, которая в свое время является id строки таблицы, которая и будет удалена. Сверху прописано обновление страницы.
----- Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
alexspb
Отправлено: 27 Августа, 2010 - 09:04:51
Посетитель
Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010
Помог: 0 раз(а)
LEONeso, избавляйтесь от такого стиля - не мешайте HTML и PHP
----- Хостинг - неограниченно доменов на одну папку Ajax - отличное введение
biperch
Отправлено: 27 Августа, 2010 - 09:07:53
Частый посетитель
Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009 Откуда: Днепропетровск
Помог: 8 раз(а)
Очень хороший стиль развивает кругозор и интуицию ))))))
Uchkuma
Отправлено: 27 Августа, 2010 - 10:31:22
Участник
Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010 Откуда: Киров
Помог: 6 раз(а)
alexspb, вы сразу начали писать отделяя программный код от представления?
Если вы взглянете на подпись LEONeso, то поймете, что он еще просто не дошел до этого уровня. Но зато он не стал высмеивать новичка, а попытался доступным для него языком объяснить, как можно работать с данными в mysql.
Libiros
Отправлено: 27 Августа, 2010 - 15:54:03
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Спасибо, вы очень помогли
Понял принцип написания, с помощью MySQL и сделал. Всё получилось
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.