sql >> Database teknologi >  >> RDS >> Mysql

slette uploadede filer fra et array af id, når de slettes i joomla?

Du har et par problemer i din kode:

  1. $uploadedfile er aldrig erklæret, men det bruges til at finde filstien. Jeg antager, at dette er det samme som $getdeleted .
  2. Du har en forreste løkke rundt om elementerne i dit array, som opfanger hvert element efter tur. Uanset hvordan du modellerer funktionen deleteGreetings tager hele arrayet. Du bør fjerne dette funktionskald fra din løkke, ellers vil det blive kaldt for hvert element i arrayet. Du vil kun ringe til dette én gang.
  3. Kun i slutningen af ​​din controller tjekker du, om din cid-param er null ... hvad er meningen? Du bør tjekke dette først, før du prøver at køre nogen af ​​de andre koder.

Jeg ville gøre noget som dette:

$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:Vælg flere rækker, der indeholder værdier fra én kolonne

  2. Hvordan kan jeg vende standardrækkefølgen i MySQL om?

  3. Overheaden ved #temp-tabeloprettelsessporing

  4. SQL Indsæt nye rækker i tabel for hvert felt i samme tabel