/** * Luo uuden kuvauksen annetuilla arvoilla, tallentaa sen tietokantaan * ja palauttaa tallennetun id:n tai arvon * Kuvaus::$MUUTTUJAA_EI_MAARITELTY, jos jokin menee vikaan. * @param int $lajiluokka_id Viittaus yläluokkaan * @param string $nimi Lajin nimi $kieli-muuttujan määrittämällä kielellä. * @param string $kuvaus Lajin kuvaus $kieli-muuttujan määrittämällä kielellä. * @param int $kieli kielen indeksi * @return int Palauttaa kokonaisluvun */ public function luo_ja_tallenna_kuvaus($lajiluokka_id, $nimi, $kuvaus, $kieli) { $tallennetun_id = Kuvaus::$MUUTTUJAA_EI_MAARITELTY; $id = Kuvaus::$PARAMETRI_EI_KAYTOSSA; $kuvausolio = new Kuvaus($this->tietokantaolio, $id); $this->lisaa_testikommentti("Uusi tyhja kuvausolio luotu!", false); // Ei pitäisi olla tallennuskelpoinen: if ($kuvausolio->on_tallennuskelpoinen(true)) { $this->lisaa_virheilmoitus("Ei pitaisi olla tallennuskelpoinen!"); } /*else{ $this->lisaa_testikommentti("Muuttujia ei ole asetettu, joten". " saatiin aivan oikein seuraava palaute: ". $kuvausolio->tulosta_virheilmoitukset(),false); } $this->lisaa_testikommentti("Asetetaan lajiluokka_id, nimi, kuvaus ja kieli. Testataan uudelleen, onko nyt tallennuskelpoinen:",false);*/ $kuvausolio->set_lajiluokka($lajiluokka_id); $kuvausolio->set_nimi($nimi); $kuvausolio->set_kuvaus($kuvaus); $kuvausolio->set_kieli($kieli); $this->lisaa_testikommentti("Muuttujien arvot asetettu!", false); if ($kuvausolio->on_tallennuskelpoinen(true)) { $this->lisaa_testikommentti("Kuvausolio on tallennuskelpoinen!", false); $onnistuminen = $kuvausolio->tallenna_uusi(); if ($onnistuminen === Kuvaus::$OPERAATIO_ONNISTUI) { $tallennetun_id = mysql_insert_id(); } else { $this->lisaa_testikommentti($onnistuminen . " Virhe tallennuksessa (luo_\n ja_tallenna_kuvaus())!" . " Arvot: lajiluokka_id=" . $kuvausolio->get_lajiluokka_id() . ", nimi=" . $kuvausolio->get_nimi() . ", kuvaus=" . $kuvausolio->get_kuvaus() . ", kieli=" . $kuvausolio->get_kieli(), true); } } else { // Joskus testissä tämä on toivottava toiminto, joten ei aina virhe! $this->lisaa_testikommentti($kuvausolio->tulosta_virheilmoitukset(), false); } return $tallennetun_id; }