2015-06-26 2 views
0

Я сделал простую систему загрузки с использованием class.upload.php, и она отлично работает при добавлении новых в базу данных. Но у меня проблема, когда мне нужно отредактировать мою запись. Во время редактирования записи я не хочу редактировать изображение, но он отправил его пустым, также если я снова выбираю изображение, он также отправил его в пустую. Вот мой код.Редактирование загруженного изображения с использованием class.upload.php

Можете объяснить мою проблему.

<?php require_once("conn.php"); 
require_once ("class.upload.php"); 

$catid = $_POST['catid']; 
$title = $_POST['title']; 
$descc = $_POST['descc']; 
$keyw = $_POST['keyw']; 
$message = $_POST['message']; 
$Image = $_FILES['Image']; 
$randnum = rand(); 
$foo = new upload($Image); 
$filee = './Image'; 
if ($foo->uploaded) { 
$foo->image_resize = true; 
$foo->file_new_name_body = $randnum; 
$foo->image_x = 550; 
$foo->image_y = 440; 
$foo->process($filee); 
if ($foo->processed) { 
echo 'Image uploaded.'; 
echo $foo->file_dst_name; 
$foo->clean(); 
} else { 
echo 'Error. : ' . $foo->error; 
} 
} 
$Image7 = $foo->file_dst_name; 
    if($_GET[pass] == 1) 
    { 
     if(!isset($_POST[catid]) || empty($_POST[catid])){ 
      $hata = "Required area."; 
     } 
     if(!isset($_POST[title]) || empty($_POST[title])){ 
      $hata = "Required area."; 
     } 
     if(!isset($_POST[descc]) || empty($_POST[descc])){ 
      $hata = "Required area."; 
     }  
     if(!isset($_POST[keyw]) || empty($_POST[keyw])){ 
      $hata = "Required area."; 
     } 
     if(!isset($_POST[message]) || empty($_POST[message])){ 
      $hata = "Required area."; 
     } 
     if(!$hata){ 
      mysql_query("UPDATE product SET 
       catid='$_POST[catid]', 
       title='$_POST[title]', 
       descc='$_POST[descc]', 
       keyw='$_POST[keyw]', 
       message='$_POST[message]', 
       Image='$_POST[Image]' 
       WHERE id='$_POST[id]' 
       "); 
      $mesaj = "OK!"; 
     } 

    } 
    $sonuc = mysql_query("select * from product WHERE id='$_GET[product]'"); 
    $edit = mysql_fetch_array($sonuc); 
    $sonuc1 = mysql_query("select * from category"); 
    $edit1 = mysql_fetch_array($sonuc1); 
?> 
+0

Его просто просто удалить изображение = '$ _ POST [Image]' из вашего запроса на обновление. –

+0

Если я удалю, что я не могу отредактировать изображение, спасибо за ответ :) –

+0

В таком случае, поле изображения требуется для базы данных. Вам нужно изменить его на NULL с NOT NULL. –

ответ

0

попытка изменить запрос обновления

в Image = '$ _ POST [Изображение]

с изображения = '$ Image7'

+0

Здравствуйте, спасибо за ответ. Я попробовал это, это прекрасно, если я снова выбираю изображение во время редактирования, но если я не выберу изображение и не отредактирую другие части, изображение сломается. Я хочу, если я не выберу любое изображение, оно не изменит столбец изображения. я надеюсь, что смогу объяснить –

0

Фатих вы можете использовать переменную (т.е. $ saved_image_name) вместо $ POST [Image] в sql-запросе. Установите эту переменную в новое имя, если вы загрузили еще старое значение поля db.

... 
... 
$foo = new upload($Image); 
$filee = './Image'; 

$saved_image_name = " Image "; // name of db field. 

if ($foo->uploaded) { 
$foo->image_resize = true; 
$foo->file_new_name_body = $randnum; 
$foo->image_x = 550; 
$foo->image_y = 440; 
$foo->process($filee); 
if ($foo->processed) { 
echo 'Image uploaded.'; 
echo $foo->file_dst_name; 
// Note the quotes 
$saved_image_name = " '$foo->file_dst_name' "; 
$foo->clean(); 
} else { 
echo 'Error. : ' . $foo->error; 
} 
} 
// no use anymore $Image7 = $foo->file_dst_name; 
... 
... 

if(!$hata){ 
      mysql_query("UPDATE product SET 
       catid='$_POST[catid]', 
       title='$_POST[title]', 
       descc='$_POST[descc]', 
       keyw='$_POST[keyw]', 
       message='$_POST[message]', 
       Image= $saved_image_name // note the quotes 
       WHERE id='$_POST[id]' 
       "); 

... ...