2011-11-02 3 views
0

Я создаю очень основную страницу администратора для управления контентом на другой странице.Как игнорировать пустые поля при вставке в базу данных MySQL?

У меня есть несколько полей на странице администратора, одним из которых является поле для загрузки файлов. Когда форма отправляется, файл загружается в папку и имя файла помещается в базу данных.

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

Есть ли способ сделать запрос MySQL или что-то еще, что игнорирует пустые значения?

$headerimage=($_FILES['headerimage']['name']); 
$cktest = $_POST['editor1']; 
$LikeText = $_POST['editor2']; 

$sql = "UPDATE installs SET noLikeText = '$cktest', LikeText = '$LikeText', headerImage = '$headerimage' WHERE pageID = '$page_id'"; 
+1

Вы должны делать это в вашем коде, ** НЕ ** Ваш запрос. Вы фильтруете пользовательский ввод, да? – Brad

+0

Как выглядит ваш код «сохранить»? Вы должны проверять ввод пользователя и сохранять только в том случае, если вход действителен. – jacobsimeon

ответ

0

Похоже, вам нужно добавить какую-нибудь логику в свое приложение. Большая часть времени, о котором вы просите, может быть достигнута добавлением флажка «удалить» в форму, поэтому, если пользователь нажмет кнопку «Удалить», он удалит строку, если они этого не сделают, тогда ничего не происходит относительно файла.

0

Вы должны начать с отображения запросов. Я бы предположил, что вы неправильно пишете запрос на обновление.

$file = ""; 
if(isset($_FILES['file']['tmp_name'])) 
{ 
    //handle images here 
    $file = "`file` = 'some_filename.txt', "; 
} 
$sql = "UPDATE `table` SET $file `field` = '".mysql_real_escape_string($some_value)."' WHERE `id` = '".mysql_real_escape_string($some_id)."'"; 

Основная идея, что вы строите свой запрос как строку на основе условий. Это всегда работает для меня.

+0

Я просто добавил свой код сейчас. – Dustin

1

вы можете использовать это ...

Например

if($headerimage != "") 
{ 
$sql = "UPDATE installs SET noLikeText = '$cktest', LikeText = '$LikeText', headerImage = '$headerimage' WHERE pageID = '$page_id'"; 
}else{ 

$sql = "UPDATE installs SET noLikeText = '$cktest', LikeText = '$LikeText' WHERE pageID = '$page_id'"; 
} 
Смежные вопросы