示例#1
0
 /**
  * Tämä palauttaa onnistuessaa uuden Tietokantarivi-luokan olion, jossa on 
  * samanlaiset solut kuin tämän luokan tietokantarivillä ja jonka 
  * id-tunnisteen arvo on $id.
  * Solujen arvoiksi syötetään tietokannan arvot. Metodi luo siis uuden 
  * tietokantarivin, <i>eikä tee muutoksia this->tietokantarivi-olioon</i>.
  * 
  * <p>
  * Tätä voidaan hyödyntää esimerkiksi ennen muutosten tallennusta niin, että
  * tämän avulla voidaan tarkistaa, onko yhtään tietoa muutettu.
  * </p>
  * 
  * Ellei tunnistetta vastaavaa riviä löydy tietokannasta, palautetaan arvo
  * Malliluokkapohja::$EI_LOYTYNYT_TIETOKANNASTA. 
  * Palautteen arvioinnissa kannattaa käyttää instanceof-metodia.
  * 
  * @param type $id 
  */
 public function hae_tietokantarivi_tietokannasta($id)
 {
     $palaute = Malliluokkapohja::$EI_LOYTYNYT_TIETOKANNASTA;
     $tietokantasolut_array = array();
     foreach ($this->get_tietokantasolut() as $solu) {
         if ($solu instanceof Tietokantasolu) {
             array_push($tietokantasolut_array, new Tietokantasolu($solu->get_sarakenimi(), $solu->get_arvon_tyyppi()));
         }
     }
     // Haetaan arvot tietokannasta:
     $osumataulukko = $this->tietokantaolio->hae_eka_osuma_taulukkona($this->tk_taulunimi, Malliluokkapohja::$SARAKENIMI_ID, $id);
     // Huom! Alla osumataulukko sisältää kaikki tiedot kahteen kertaan
     // (indeksin ja sarakenimen avulla haettaviksi)!
     if (!empty($osumataulukko) && sizeof($osumataulukko) == 2 * sizeof($tietokantasolut_array)) {
         foreach ($tietokantasolut_array as $solu) {
             $solu->set_arvo_kevyt($osumataulukko[$solu->get_sarakenimi()]);
         }
         $palaute = new Tietokantarivi($this->tk_taulunimi, $tietokantasolut_array);
     } else {
         $this->lisaa_virheilmoitus("Virhe metodissa 'hae_tietokantarivi" . "_tietokannasta'. Osumataulukon koko =" . sizeof($osumataulukko) . " ja tietokantasolut_arrayn koko=" . sizeof($tietokantasolut_array));
     }
     return $palaute;
 }
示例#2
0
 /**
  * Palauttaa henkilön valtuusarvon tai arvon $EI_LOYTYNYT_TIETOKANNASTA,
  * ellei mitään löydy.
  * @param type $id
  * @param Tietokantaolio $tietokantaolio 
  */
 public static function hae_henkilon_valtuusarvo($id, $tietokantaolio)
 {
     $palaute = Henkilo::$EI_LOYTYNYT_TIETOKANNASTA;
     $osuma = $tietokantaolio->hae_eka_osuma_taulukkona(Henkilo::$taulunimi, Henkilo::$SARAKENIMI_ID, $id);
     if (!empty($osuma)) {
         $palaute = $osuma[Henkilo::$sarakenimi_valtuudet];
     }
     return $palaute;
 }