PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
evgenijj
Отправлено: 22 Ноября, 2006 - 08:35:20
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006
Откуда: Москва
Помог: 10 раз(а)
Записывать в БД еще и путь до файла - не очень хорошая идея. Это избыточная информация. Имени файла вполне достаточно. Если ты решишь изменить структуру директорий - создашь себе дополнительные проблемы.
Если в БД записано только имя файла, т.е. $par['image']="myimage.gif"
CODE (
text ):
скопировать код в буфер обмена
if(!empty($par['image']) && file_exists("./files/".$par['image']))
{
$image = "<img src='./files/".$par['image']."' alt=''/>";
}
P.S. Не совсем понятно, а зачем изображения для каталога хранить в папке admin? Ведь если это каталог, то логично предположить, что его будут просматривать посетители. Я бы понял, если бы изображения хранились в папке http://myserver[dot]com/files/ В книге Кузнецова, по-моему, так и сделано.
evgenijj
Отправлено: 22 Ноября, 2006 - 11:23:24
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006
Откуда: Москва
Помог: 10 раз(а)
Antikiller пишет: хм сделал так...при выводе каталога в админке там пустое место....
Сделал так, и все равно не работает?
CODE (
text ):
скопировать код в буфер обмена
...
while($par = mysql_fetch_array($prt))
{
...
$image = "Нет изображения";
if(!empty($par['image']) && file_exists("./files/".$par['image']))
{
$image = "<img src='./files/".$par['image']."' alt=''/>";
}
...
echo $image;
...
}
Тогда давай смотреть html. Здесь вроде все правильно.
Antikiller
Отправлено: 30 Ноября, 2006 - 07:33:10
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Нояб. 2006
Помог: 0 раз(а)
Вообщем всё вышло...тока теперь есть такой вопрос при исправлении
вот идёт форма исправления
Цитата: <?php
require_once("config.php");
$title = "Редактирование данных о квартире";
$batton = "Исправить";
$action = "editprod.php";
$query = "SELECT * FROM product
WHERE id_product=". $_GET['id_product'];
$pro = mysql_query($query);
if (!$pro) puterror("Ошибка при исправлении продукции");
$product = mysql_fetch_array($pro);
$name = $product['name'];
$artikyl= $product['artikyl'];
$razmer=$product['razmer'];
$ypakovka=$product['ypakovka'];
$image=$product['image'];
$pos=$product['pos'];
if($product['hide'] == 'show') $showhide = "checked";
else $showhide ="";
include "addprodform.php";
?>
а вот проверка...
Цитата: equire_once("config.php");
if(empty($_POST['image'])) links($_POST['id_catalog'], "Отсутствует фотография");
$query = " UPDATE product SET
name='".$_POST['name']."',
artikyl='".$_POST['artikyl']."',
razmer='".$_POST['razmer']."',
ypakovka='".$_POST['ypakovka']."',
image='".$_POST['image']."',
pos=".$_POST['pos'].",
hide='".$_POST['showhide']."',
WHERE id_product=".$_POST['id_product'];
if(empty($_POST['image'])) links($_POST['id_catalog'], "Отсутствует фотография");
if (!empty($_FILES['image']['tmp_name']))
{
$query = "SELECT image FROM product
WHERE id_catalog=".$_POST['id_catalog'];
$pct = mysql_query($query);
if(!$pct) links($_POST['id_catalog'],
"Ошибка обращения к базе данных");
}
if(mysql_query($query))
{
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php?id_parent=".$_POST['id_catalog']."'>
</HEAD></HTML>";
} else links($_POST['id_catalog'], "Ошибка при обновлении продукции");
function links($id_catalog,$msg)
{
echo "<p>".$msg."</p>";
echo "<p><a href=# onClick='history.back()'>Вернуться к правке продукта</a></p>";
echo "<p><a href=index.php?id_parent=$id_catalog&id_part=$id_part>Администрирование каталога продукции</a></p>";
exit();
}
?>
я понимаю что тут есть глюк...вот как с ним побороться?
evgenijj
Отправлено: 30 Ноября, 2006 - 10:21:33
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006
Откуда: Москва
Помог: 10 раз(а)
Antikiller пишет:
я понимаю что тут есть глюк...вот как с ним побороться?
Глюк - это мягко сказано.
PHP:
скопировать код в буфер обмена
<?PHP
// Форма для редактирования товара
require_once ( "config.php" ) ;
$title = "Редактирование данных о товаре" ;
$button = "Исправить" ;
$action = "updateprod.php" ;
$query = "SELECT * FROM product WHERE id_product=" . $_GET [ 'id_product' ] ;
if ( ! $pro ) puterror( "Ошибка при обращении к БД" ) ;
// Наименование товарной позиции
$name = $product [ 'name' ] ;
// Код (артикул) товара
$code = $product [ 'code' ] ;
// Упаковка
$packing = $product [ 'packing' ] ;
// Изображение товара -
if ( ! empty ( $product [ 'image' ] ) and
is_file ( "../files/images/catalog/products/" . $product [ 'image' ] ) ) $image = "<a href='/files/images/catalog/products/" . $product [ 'image' ] . "' target='_blank'>" . $product [ 'image' ] . "</a>" ;
else
$image = "Изображение не загружено" ;
// Доступна или нет товарная позиция для просмотра посетителями сайта
if ( $product [ 'showhide' ] == 'show' )
$showhide = "checked" ;
else
$showhide = "" ;
?>
<form enctype="multipart/form-data" action="<? echo $action ; ?> " method="POST">
<table>
<tr>
<td align="right">Наименование:</td>
<td><input type="text" name="name" value="<? echo $name ; ?> " maxlength="250"></td>
</tr>
<tr>
<td align="right">Код (артикул):</td>
<td><input type="text" name="code" value="<? echo $code ; ?> " maxlength="30"></td>
</tr>
<tr>
<td align="right">Упаковка:</td>
<td><input type="text" name="packing" value="<? echo $packing ; ?> " maxlength="250"></td>
</tr>
<tr>
<td align="right">Публиковать:</td>
<td><input type="checkbox" name="showhide" <? echo $showhide ; ?> /></td>
</tr>
<tr>
<td align="right">Изображение:</td>
<td><input type="file" name="image"/><br/><? echo $image ; ?> </td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" value="<? echo $button ?> "/> <input type="button" value="Отмена" onClick="history.back();"/>
</td>
</tr>
</table>
<input type="hidden" name="id_product" value=<?PHP echo $_GET [ 'id_product' ] ; ?> >
<input type="hidden" name="id_catalog" value=<?PHP echo $_GET [ 'id_catalog' ] ; ?> >
</form>
(Добавление)
PHP:
скопировать код в буфер обмена
<?
// Обновление данных о товаре
require_once ( "config.php" ) ;
// Если поле "Наименование товара" пустое
if ( empty ( $_POST [ "name" ] ) ) links
( $_POST [ 'id_catalog' ] , "Не заполнено поле 'Наименование товара'" ) ;
// Обрезаем лишние пробелы
$name = trim ( $_POST [ "name" ] ) ; $code = trim ( $_POST [ "code" ] ) ; $packing = trim ( $_POST [ "price" ] ) ;
// Обрезаем переменные до длины, указанной в параметре maxlength тега input
$name = substr ( $name , 0
, 250
) ; $code = substr ( $code , 0
, 30
) ; $packing = substr ( $price , 0
, 250
) ;
// Доступен или нет товар для просмотра посетителям сайта
if ( isset ( $_POST [ "showhide" ] ) ) $showhide = "show" ;
else
$showhide = "hide" ;
// Файл изображения - удаляем старое изображение и загружаем новое
// Получаем имя файла изображения
$query = "SELECT image FROM product WHERE id_product=" . $_POST [ 'id_product' ] ;
// Директория для хранения файлов изображений для товарных позиций
$uploaddir = "../files/images/catalog/products/" ;
// Если пользователь загружает файл изображения
if ( ! empty ( $_FILES [ 'image' ] [ 'name' ] ) and
preg_match ( '/.(jpg|jpeg|jpe|gif|pcx|png|bmp)$/i' , $_FILES [ "image" ] [ "name" ] ) ) {
// Удаляем старое изображение, если оно есть
// Загружаем новое изображение
if ( @ move_uploaded_file ( $_FILES [ "image" ] [ "tmp_name" ] , $uploaddir . $_FILES [ "image" ] [ "name" ] ) ) {
// Загрузка прошла успешно - обновляем в БД имя файла изображения
$img = ", image='" . $_FILES [ "image" ] [ "name" ] . "'" ;
}
else
{
// Ошибка при загрузке - записываем в БД пустую строку
$img = ", image=''" ;
}
}
else
{
// Если пользователь не выбрал файл для загрузки
$img = "" ;
}
$query = "UPDATE product SET
name='" . $name . "',
code='" . $code . "',
packing='" . $packing . "',
showhide='" . $showhide . "'
" . $img . "
WHERE id_product=" . $_POST [ 'id_product' ] ;
{
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php?id_parent=" . $_POST [ 'id_catalog' ] . "'>
</HEAD></HTML>" ;
}
else
{
links( $_POST [ 'id_catalog' ] , "Ошибка при обновлении продукции" ) ;
}
function links( $id_catalog , $msg )
{
echo "<p >" . $msg . "</p>" ;
echo "<p ><a href=# onClick='history.back()'>Вернуться к правке продукта</a></p>" ;
echo "<p ><a href=index.php?id_parent=" . $id_catalog . "'>Администрирование каталога продукции</a></p>" ;
}
?>
Поиск в теме | Версия для печати
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB