sql >> Databasteknik >  >> RDS >> Mysql

radera uppladdade filer från en array av id när de raderas i joomla?

Du har några problem i din kod:

  1. $uploadedfile deklareras aldrig men används för att hitta filsökvägen. Jag antar att detta är samma som $getdeleted .
  2. Du har en foreach loop runt elementen i din array som tar upp varje element i tur och ordning. Hur du än modellerar funktionen deleteGreetings tar hela arrayen. Du bör ta bort det här funktionsanropet från din loop annars kommer det att anropas för varje element i arrayen. Du vill bara ringa detta en gång.
  3. Först i slutet av din kontroller kontrollerar du om din cid-param är null ... vad är poängen? Du bör kontrollera detta först innan du försöker köra någon annan kod.

Jag skulle göra något sånt här:

$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. Använder pg_dump för att bara få infogningssatser från en tabell i databasen

  2. Castar NULL-typ vid uppdatering av flera rader

  3. Att köra SQL-skript genom psql ger syntaxfel som inte förekommer i PgAdmin

  4. 5 intressanta fakta om databashanteringssystem