2012-05-02 151 views
0

我在表格中編輯數據庫中的表格。然而,用戶可能不會選擇一個圖像,所以如果他們不我不想更新該字段。我嘗試了幾種方法來做到這一點,但沒有工作。有沒有簡單的方法?謝謝。if語句在php mysql中

if ($_POST["image"]!=='') { 
     $image= "image=%s"; 
     $imageValue = "GetSQLValueString(".$_POST['image'].", 'text'),"; 
}; 

$insertSQL = sprintf("UPDATE taxi SET name=%s, taxi_link=%s, ". $image." WHERE id=%s", 
        GetSQLValueString($_POST['name'], "text"), 
        GetSQLValueString($_POST['link'], "text"), 
        $imageValue, 
        GetSQLValueString($_POST['id'], "int")); 
+0

你上面的嘗試沒有一個工作的原因所在。 'taxi_link =%s'後面的','。刪除','並將第二行更改爲'$ image =「,image =%s」;'。 –

+0

感謝您的指針,仍然有一個問題,在$ imageValue是空白的,但仍然把一個空白的輸入給出一個錯誤 –

+0

我修復了您的查詢在下面的答案。 –

回答

1

你可以做別的事情:

$arr_values = array('name' => $_POST['name'], 
        'taxi_link' => $_POST['link']); 

if (! $_POST["image"]) 
    $arr_values['image'] = $_POST['image']; 

$this->db->update($arr_values, array('id' => $_POST['id'])); 

update()僅處理數組,您可以根據條件簡單地向數組添加其他值。

就我個人而言,我做了我自己的函數,這個函數可以完美地添加和使用數組值。

固定查詢:

$image = ''; 
if ($_POST["image"] !== '') 
     $image= ", image=".GetSQLValueString($_POST['image'], 'text'); 

$insertSQL = sprintf("UPDATE taxi SET name=%s, taxi_link=%s {$image} WHERE id=%s", 
        GetSQLValueString($_POST['name'], "text"), 
        GetSQLValueString($_POST['link'], "text"), 
        GetSQLValueString($_POST['id'], "int")); 
+0

對不起,這裏沒有一個選項,雖然 –

+0

檢查評論你的答案。它說你的例子有什麼問題。 –

+0

再次感謝您的幫助,它的工作原理是,如果我將圖像字段留空,但是當我選擇圖像時,出現錯誤49行上的taxi-edit.php中的參數太少查詢是空的 –

2

如果我理解你的話,你不能把整個事情放在if語句中嗎?

if ($_POST["image"]!=='') { 
     $image= "image=%s"; 
     $imageValue = "GetSQLValueString(".$_POST['image'].", 'text'),"; 
     $insertSQL = sprintf("UPDATE taxi SET name=%s, taxi_link=%s, ". $image." WHERE id=%s", 
        GetSQLValueString($_POST['name'], "text"), 
        GetSQLValueString($_POST['link'], "text"), 
        $imageValue, 
        GetSQLValueString($_POST['id'], "int")); 
     //execute query 
} else { 
    //tell the user nothing happened 
} //no semicolon required 

所以,現在它會構建,如果指定的圖像執行查詢,如果如果你使用像笨的框架,你可以簡單地不是指定它

+0

我雖然這是他的第一意思,但他的意思是有更多優雅(和功能)的方式來更新圖像列,然後他已經做到了。 –

+0

是的想到這個,但想知道有沒有寫多個查詢的方式 –