sql >> データベース >  >> RDS >> Mysql

それらがjoomlaで削除されたときにidの配列からアップロードされたファイルを削除しますか?

    コードにいくつか問題があります:

    1. $uploadedfile 宣言されることはありませんが、ファイルパスを見つけるために使用されます。これは$getdeletedと同じだと思います 。
    2. 配列内の要素の周りにforeachループがあり、各要素を順番に取得します。ただし、関数deleteGreetingsをモデル化する 配列全体を取ります。この関数呼び出しをループから削除する必要があります。そうしないと、配列内のすべての要素に対してそれぞれ呼び出されます。これを1回だけ呼び出します。
    3. コントローラーの最後でのみ、cidパラメーターがnullかどうかを確認します...ポイントは何ですか?他のコードを実行する前に、まずこれを確認する必要があります。

    私はこのようなことをします:

    $arrayIDs = JRequest::getVar ( 'cid', null, 'default', 'array' );
    if ($arrayIDs === null) { //Make sure the cid parameter was in the request
      JError::raiseError ( 500, 'cid parameter missing from the request' );
    }
    $model = & $this->getModel ( 'greetings' );
    jimport ( 'joomla.filesystem.file' );
    if (is_array ( $arrayIDs ) && count ( $arrayIDs ) > 0) {
      $del = $model->deleteGreetings ( $arrayIDs );
      // check this outside the loop, if it is inside you are checking it for 
      // each element in the array. Here we check once and then go forward.
      if ($del) {
        foreach ( $arrayIDs as $k => $id ) {
          $uploadedfile = $model->getUploadpic ( $id );
          $deletefile = JPATH_COMPONENT . DS . "uploads" . DS . $uploadedfile;
          JFile::delete($deletefile);
          //unlink ( $deletefile );
        }
      }
    }
    



    1. MySQLチュートリアル–MySQLサーバーでのSSLの構成と管理

    2. エンティティで主キーのないビューを使用する

    3. TOP n WITH TIESに相当するPostgreSQL:LIMIT with ties?

    4. SQLの使用方法-INSERT...ON DUPLICATE KEY UPDATE?