|
|
|
| Итак, в исходном виде есть таблица вида:
вот эти данные образуют некие статейки, но в статейках могут быть и приложения, например картинки, текст (прикрепленный)
ДАТА
СОДЕРЖАНИЕ СТАТЬИ
-----------------------------------
Прикрепленный файл №1
Прикрепленный файл №2
Прикрепленный файл №n
|
Подскажите как лучше хранить эти приложения если заранее нельзя предугадать сколько их будет? | |
|
|
|
|
|
|
|
для: chexov
(23.11.2008 в 16:20)
| | Итак, в исходном виде есть таблица вида:
id
name
times
интересный вид такой.
тексты предполагается в базе хранить или файлами?
изображения предполагается в базе хранить или файлами? | |
|
|
|
|
|
|
|
для: Trianon
(23.11.2008 в 16:25)
| | исходная таблица хранит только тесксты
А так как количество приложений сразу не предугадать (они могут добавляться после публикации статьи) то я и спрашиваю как лучше хранит эти файлы, в таблице или нет, и как фиксировать их названия | |
|
|
|
|
|
|
|
для: chexov
(23.11.2008 в 16:29)
| | если сами приложения
а) допустимо хранить в виде файлов, и
б) не требуется снабжать персональными именами
то достаточно лишь добавить в таблицу еще одно поле, в котором держать количество приложений к статье.
если приложения (хотя бы одного из типов) обязательно держать в базе, нужно будет добавить таблицу с ними. | |
|
|
|
|
|
|
|
для: Trianon
(23.11.2008 в 16:55)
| | мне как раз наоборот требуется снабдить их персональными именами и желательно хранить в базе, покажите примерную структуру как это делается т.е можно ли к примеру 8 файлов хранить в одном поле таблицы? т.к количество полей предусмотреть нельзя, и если можно то каким образом их извлекать?
вот код формы загрузки:
<?
<form enctype="multipart/form-data" method="post" action="putimage.php">
Изображение: <input type="file" name="image" />
<input type="submit" value="Загрузить" />
</form>
?>
|
Обработчик формы
<?
// Проверяем пришел ли файл
if( !empty( $_FILES['image']['name'] ) ) {
// Проверяем, что при загрузке не произошло ошибок
if ( $_FILES['image']['error'] == 0 ) {
// Если файл загружен успешно, то проверяем - графический ли он
if( substr($_FILES['image']['type'], 0, 5)=='image' ) {
// Читаем содержимое файла
$image = file_get_contents( $_FILES['image']['tmp_name'] );
// Экранируем специальные символы в содержимом файла
$image = mysql_escape_string( $image );
// Формируем запрос на добавление файла в базу данных
$query="INSERT INTO `images` VALUES(NULL, '".$image."')";
// После чего остается только выполнить данный запрос к базе данных
mysql_query( $query );
}
}
}
?>
|
Извлечение файла в image.php
<?
if ( isset( $_GET['id'] ) ) {
// Здесь $id номер изображения
$id = (int)$_GET['id'];
if ( $id > 0 ) {
$query = "SELECT `image` FROM `images` WHERE `id`=".$id;
// Выполняем запрос и получаем файл
$res = mysql_query($query);
if ( mysql_num_rows( $res ) == 1 ) {
$image = mysql_fetch_array($res);
// Отсылаем браузеру заголовок, сообщающий о том, что сейчас будет передаваться файл изображения
header("Content-type: image/*");
// И передаем сам файл
echo $image['content'];
}
}
}
?>
|
и собственно вывод
<img src="image.php?id=17" alt="" />
|
так вот мне нужно то же самое только с текстовыми файлами в частности MS word и количество файлов до 10 | |
|
|
|