sql >> Databáze >  >> RDS >> Mysql

odstranit nahraný soubor z pole id, když jsou odstraněny v joomle?

V kódu máte několik problémů:

  1. $uploadedfile není nikdy deklarován, ale používá se k nalezení cesty k souboru. Předpokládám, že je to stejné jako $getdeleted .
  2. Okolem prvků v poli máte smyčku foreach, která postupně zachytí každý prvek. Vy však modelujete funkci deleteGreetings zabere celé pole. Toto volání funkce byste měli z vaší smyčky odstranit, jinak bude voláno každé pro každý prvek v poli. Toto chcete volat pouze jednou.
  3. Pouze na konci ovladače zkontrolujete, zda je parametr cid null ... jaký to má smysl? Toto byste měli nejprve zkontrolovat, než se pokusíte spustit jakýkoli jiný kód.

Udělal bych něco takového:

$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. Jak mohu emulovat WHERE 1 v dynamickém dotazu?

  2. LIMIT / OFFSET v Oracle 11G

  3. smazat pomocí where a nebo

  4. Import vícehodnotového pole do Solr z mySQL pomocí Solr Data Import Handler