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

Форум PHP

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

 

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

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

тема: Форма добавления для тестового каталога книг.
 
 автор: Артурыч   (09.07.2011 в 19:47)   письмо автору
 
 

Собственно база здесь http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=81556&page=1.
Теперь думаю, наверное начать надо с формы добавления книг в БД?
Или?

  Ответить  
 
 автор: cheops   (09.07.2011 в 19:54)   письмо автору
 
   для: Артурыч   (09.07.2011 в 19:47)
 

Совершенно верно. Вы упоминали, что знаете HTML, самое время продемонстрировать свое искусство и создать две страницы с HTML-формами-заголовками, которые позволят заполнять данные таблицы. Если что-то вызывает сложности, сообщите, постараемся помочь.

  Ответить  
 
 автор: Артурыч   (09.07.2011 в 19:56)   письмо автору
 
   для: cheops   (09.07.2011 в 19:54)
 

Зачем две? :( не понял?

  Ответить  
 
 автор: cheops   (09.07.2011 в 20:10)   письмо автору
 
   для: Артурыч   (09.07.2011 в 19:56)
 

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

PS Но вообще по уму, пользователи бы ожидали, что вы предоставили им интерфейс для создания, редактирования и удаления каталогов из системы (это удобнее делать отдельно от книг). Т.е. чтобы можно было создать каталог и наполнить его книгами, а потом в случае чего, переименовать или удалить за ненадобностью (вместе с книгами или указав раздел, куда книги из удаляемого каталога нужно поместить), т.е. в конечном варианте форм будет много. В конце концов нужно стремиться очаровать пользователя, чтобы он думал: "Это как же я раньше без этого полезного ПО жил?", вместо "Ну ка нафиг, я лучше по старинке все буду в каталогах на жестком диске хранить". Да и хорошее ПО получается, если оно вам самому нравится и вы им охотнее пользуетесь, вместо сторонних продуктов. Только при выполнении этого условия возможна монетизация вашего труда (если вам удобнее пользоваться своей программой, а не чужой, значит 100% есть еще такие люди и свои услуги можно продавать/менять/предлагать - этого состояния и нужно добиться, чтобы было удобнее/мощнее/функциональнее, чем у других).

  Ответить  
 
 автор: Артурыч   (09.07.2011 в 20:17)   письмо автору
 
   для: cheops   (09.07.2011 в 20:10)
 

Ок, спасибо :) Буду думать!

  Ответить  
 
 автор: Артурыч   (09.07.2011 в 23:16)   письмо автору
 
   для: Артурыч   (09.07.2011 в 20:17)
 

Вообщем, есть вопросы. Вот форма:
 <form action="" method="post" enctype="multipart/form-data" name="form">
 Название книги <input type="text" name="bookname"><br>
 Краткое описание книги <input type="text" name="opisanie"><br>
 Год издания <input type="text" name="data"><br>
 Выберите файл <input type="file" name="filename"><br>
 Выберите категорию <select name="id_katalog" multiple></select><br>
 <input name="submit" type="submit" value="Добавить книгу">
</form>

И так, как я понял, в моей форме, данные попадут в глобальную переменную $_POST. Если не прав, поправьте. Теперь, по идеи, надо как то эти все данные обработать, т.е. файл загрузить на сервер, поля записать в БД, присвоев ему уникальное имя "filename" и уникальный "id" в БД.
Т.е. нужен обработчик формы. Тут у меня столбняк случился :D, блин, как его сделать. Даже точнее, текстовые данные я из формы в БД сохраню, а что делать с файлом?
Честно, вопросов еще больше, чем сейчас написал здесь. Просто боюсь задавать сразу все, чтобы не послали :)

  Ответить  
 
 автор: Valick   (09.07.2011 в 23:45)   письмо автору
 
   для: Артурыч   (09.07.2011 в 23:16)
 

имя файла сохранять в БД, а сам файл сохранять на сервере в папке с именем (точнее номером) id строки связанной с настоящим именем файла

  Ответить  
 
 автор: Артурыч   (10.07.2011 в 10:33)   письмо автору
 
   для: Valick   (09.07.2011 в 23:45)
 

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

  Ответить  
 
 автор: cheops   (10.07.2011 в 13:29)   письмо автору
 
   для: Артурыч   (10.07.2011 в 10:33)
 

Посмотрите пример по ссылке http://softtime.ru/scripts/upload.php.

Вам потребуется глобальный массив $_FILES и функции is_uploaded_file() - загружен ли файл и move_uploaded_file() - переместить файл из временной директории в директорию назначения.

  Ответить  
 
 автор: cheops   (10.07.2011 в 13:38)   письмо автору
 
   для: Артурыч   (09.07.2011 в 23:16)
 

>И так, как я понял, в моей форме, данные попадут в глобальную переменную $_POST.
Совершенно верно. Кроме того, данные файла попадают в $_FILES.

В первую очередь просто выведите при помощи print_r содержимое массива $_POST (а за одно и $_FILES), чтобы вам было проще ориентироваться.
<?php
  
echo "<pre>";
  
print_r($_POST);
  echo 
"</pre>";
?>
Во вторую очередь нужно решить, где будет обработчик. (1) В отдельном файле - удобство в том, что вы разделяете HTML-код и PHP-обработчик или в этом же самом файле (2) удобство в том, что проще обрабатывать сообщения об ошибках, если что-то не так, то просто опять выведется HTML-форма с сообщением об ошибке, при этом у вас будет готовый $_POST из которого можно взять данные, чтобы подставить в атрибут value (т.е. все что введет пользователь не пропадает). В зависимости от выбранной стратегии - советы о том что делать дальше будут различаться.

В третью очередь, нужно создать параллельный проект, в котром разобраться, как устанавливать соединие с MySQL, как выполнять статические запросы (без подстановки своих переменных, просто строковый запрос вроде SELECT VERSION(), который возвращает версию сервера), получать не сложные результаты. Когда вы для себя все уясните, можно будет думать о собственном разработчике.

  Ответить  
 
 автор: Артурыч   (11.07.2011 в 17:56)   письмо автору
 
   для: cheops   (10.07.2011 в 13:38)
 

Вообщем я так понял, переменные $_POST возвращает ассоциативный массив, в котором названия ключей, это название полей в форме, а значения соотвветсвенно содержимое этих полей.
То же самое с $_FILE возвращает тоже массив с ключами которые содержат параметры загружаемого файла, его истинное название и временный каталог размешения, и еще какой то ключ error, я не понял зачем :).
Далее с базой разобрался, подключаться научился, простые запросы делать вроде получается.
Решил делать в одном файле и обработчик м форму.
Как теперь все это до кучи завязать?

  Ответить  
 
 автор: cheops   (11.07.2011 в 20:35)   письмо автору
 
   для: Артурыч   (11.07.2011 в 17:56)
 

>Вообщем я так понял, переменные $_POST возвращает ассоциативный массив, в котором
>названия ключей, это название полей в форме, а значения соотвветсвенно содержимое этих
>полей.
>То же самое с $_FILE возвращает тоже массив с ключами которые содержат параметры
>загружаемого файла, его истинное название и временный каталог размешения, и еще какой то
>ключ error, я не понял зачем :).
Совершенно верно, поле error содержит ошибку, если не удалось загрузить файл.

>Решил делать в одном файле и обработчик м форму.
>Как теперь все это до кучи завязать?
Можно использовать следующую схему
if(!empty($_POST))
{
  // Обработчик
  ...
  // Переадресация на файл index.php (здесь файл, куда пользователь
  // должен попадать после успешного добавления каталога)
  header("Location: index.php");
  exit();
}
// Тут HTML-форма

  Ответить  
 
 автор: Артурыч   (11.07.2011 в 09:16)   письмо автору
 
   для: Артурыч   (09.07.2011 в 19:47)
 

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

  Ответить  
 
 автор: Артурыч   (11.07.2011 в 18:00)   письмо автору
 
   для: Артурыч   (11.07.2011 в 09:16)
 

И еще, не могу понять, как сделать список select, чтобы в него потом добавлялись имеющиеся категории?

  Ответить  
 
 автор: Valick   (11.07.2011 в 18:04)   письмо автору
 
   для: Артурыч   (11.07.2011 в 18:00)
 

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

  Ответить  
 
 автор: cheops   (11.07.2011 в 20:25)   письмо автору
 
   для: Артурыч   (11.07.2011 в 18:00)
 

>И еще, не могу понять, как сделать список select, чтобы в него потом
>добавлялись имеющиеся категории?
Вопрос вызывает синтаксис select-тэга или извлечение списка из базы данных? Лучше всего формировать его из таблицы категорий.

  Ответить  
 
 автор: Артурыч   (11.07.2011 в 20:27)   письмо автору
 
   для: cheops   (11.07.2011 в 20:25)
 

Второе, список категория для списка селект. Выше код, но блин, не выводит нечего из таблицы. Таблица называется katalog.

[поправлено модератором: ветка, посвященная взаимодействию с базой данных, выенесена в отдельную тему]

  Ответить  
Rambler's Top100
вверх

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