2014-09-27 4 views
0

이것이 멍청한 질문 인 경우 사면 해주십시오.sql_fetch_array에서 함수에 값을 삽입하는 데 도움이 필요합니다.

폴더의 .php 파일에서 공용 함수 delete()를 호출하려고합니다. fileB.php 및 fileA.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되고 오류가보고되지 않았다이다. 그러나 예상 된 결과가 나오지 않았습니다.

나는이 문제를 위의 호출 된 public function delete()에 mysql_fetch_array에서 얻은 값을 삽입한다고 생각한다.

그 외에도 다른 이유가 무엇인지 생각할 수 없습니다. 감사합니다. 감사!!

///// 편집 //////

이 기능은 다음과 같습니다) (삭제

공공 기능 ($ 비밀, $ 해당 itemId) 삭제 { $ 항목 = $ this- > 매니저 -> 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

어딘가에 fileA.php를'include' 또는'require'해야합니다. 그러나 당신은'Item' 클래스에'-> delete()'가 정의되어서는 안되며 객체를 사용하고 있습니까? – Paul

+0

어떻게 디버깅하셨습니까? 'var_dump (..) '에 의해이 이론을 테스트 했습니까? – Sumurai8

+0

또한 마지막 항목 만 삭제한다고 가정합니다. – Sumurai8

답변

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

관련 문제