2014-09-27 69 views
0

如果這是一個noob問題,請原諒我。需要幫助將sql_fetch_array中的值插入函數

我想從文件夾中的.php文件調用一個公共函數delete()。

公共函數刪除()是在fileA.php

我創建了另一個文件:fileB.php並使用它來調用公共函數fileA.php。

但是,代碼似乎不起作用。

這是我在fileB.php:

function crondel() { 

    $sql_del2 = new Item; 

    $oc_t_item_description="oc_t_item_description"; 

    $sql_del="SELECT * FROM $tbl_name WHERE UNIX_TIMESTAMP($expiry_date) < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))"; 
    $result_del = mysql_query($sql_del); 


    while($row = mysql_fetch_array($result_del)) { 


      $itemid = $row['pk_i_id']; 
      $secret = $row['s_secret']; 
      //$sql_del2 = "DELETE FROM $oc_t_item_description WHERE 
          //fk_i_item_id = '$criteria'"; 
      //$result_del2 = mysql_query($sql_del2); 

      } 

    $secret_new=$secret; 
    $itemid_new=$itemid; 

    $result_del2 = $sql_del2->delete($secret_new, $itemid_new); 


    } 

問題是腳本exceuted並報告任何錯誤。但是,它沒有產生預期的結果。

我認爲問題在於將從mysql_fetch_array獲取的值插入到上面所述的公共函數delete()中。

除此之外,我想不出任何其他原因,爲什麼它不起作用。 感謝任何幫助。謝謝!!

/////編輯//////

這功能:刪除()

公共職能刪除($祕密,$的itemId) {$ 項目= $這個 - >管理器 - >的findByPrimaryKey($的itemId);

 osc_run_hook('before_delete_item', $itemId); 

     if($item['s_secret'] == $secret) { 
      $this->deleteResourcesFromHD($item['pk_i_id']); 
      Log::newInstance()->insertLog('item', 'delete', $itemId, $item['s_title'], $this->is_admin ? 'admin' : 'user', $this->is_admin ? osc_logged_admin_id() : osc_logged_user_id()); 
      $result = $this->manager->deleteByPrimaryKey($itemId); 
      if($result!==false) { 
       osc_run_hook('after_delete_item', $itemId, $item); 
      } 
      return $result; 
     } 

     return false; 
    } 
+1

你需要'include'或'require' fileA.php某處。但是你使用的是Object,不應該在Item Item中定義' - > delete()'? – Paul 2014-09-27 17:22:28

+0

你是如何調試的?你是否用'var_dump(..)'測試了這個理論 - 涉及到變量以查看它們的內容? – Sumurai8 2014-09-27 17:34:19

+0

我還假設你只想刪除最後一項? – Sumurai8 2014-09-27 17:36:07

回答

0

你能發表delete()函數的源嗎? 無論如何,您的$ itemid和$ secret將僅包含您的查詢的最後一行,導致您重新分配該值並在此後不做任何操作。我想你彪這樣做是爲了讓所有的結果:

while($row = mysql_fetch_array($result_del)) { 
    $result_del2 = $sql_del2->delete($row['s_secret'], $row['pk_i_id']); 
} 

編輯:刪除()不採取數組作爲參數,但s_secret和pk_i_id。

+0

嗨!我在初始文章中添加了delete()函數的源代碼。謝謝你的幫助! – delwyn 2014-09-27 17:52:25