Jump to content
php.lv forumi

SQL atkarības


eT`

Recommended Posts

Sveiki,

Vai ir veids, kā var atrast visas saistītās ( bērnu ) tabulas, pēc padotā tabulas nosaukuma, un ja tādas ir, tad izdzēst no tām visus ierakstus, kam atslēgas lauka vērtība sakrīt ar padoto $id?

 

Piemērs: Galerijas->Bildes->Komentāri

 

Izdzēsot Galeriju, izdzēšas arī bildes un komentāri ( reversā secībā ). Ja izdomātu f-ju, tad rekursiju gan jau uztaisītu.

Bet tā lai f-ja ir forši OOP ( katram jaunajam modulim nav jātaisa klāt esošajā f-jā kaut kas )

 

Pašreizējā f-jas:

 

<?php
   //Photo klase
   public function destroy() {
       $q = $this->delete();
       if($q == true) {
           $target_path = SITE_ROOT.DS.'public'.DS.$this->image_path();
           $target_path_sm = SITE_ROOT.DS.'public'.DS.$this->image_path(TRUE);

           if(file_exists($target_path) && file_exists($target_path_sm)) {
               if(unlink($target_path_sm)) {
                   return unlink($target_path) ? true : false;
               } else {
                   return false;
               }
           } else {
               return false;
           }
       } else {
           return false;
       }
   }

   //Model klase

   public function delete() {
       if($this->id)
       {
           $q = Database::delete(static::TABLE, $this->id);
           if($q == true) {
               return true;
           } else {
               return false;
           }
       }
       return false;
   }

   //Database klase

   public static function delete($table,$id) {
       //te vajadzētu pārbaudīt vai ir saistītās tabulas, un izdzēst bērnu ierakstus
       if(self::query("DELETE FROM ".$table." WHERE id={$id}")) {
           return true;
       } else {
           return false;
       }
   }
?>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...