/** * Luo uuden lajiluokan annetuilla arvoilla, tallentaa sen tietokantaan * ja palauttaa tallennetun id:n tai arvon * Lajiluokka::$MUUTTUJAA_EI_MAARITELTY, jos jokin menee vikaan. * * @param type $ylaluokka_id * @param type $nimi_latina * @return type */ public function luo_ja_tallenna_lajiluokka($ylaluokka_id, $nimi_latina) { $tallennetun_id = Lajiluokka::$MUUTTUJAA_EI_MAARITELTY; $id = Lajiluokka::$PARAMETRI_EI_KAYTOSSA; $lajiluokka = new Lajiluokka($this->tietokantaolio, $id); $this->lisaa_testikommentti("Uusi tyhja lajiluokka luotu!", false); // Ei pitäisi olla tallennuskelpoinen: if ($lajiluokka->on_tallennuskelpoinen(true)) { $this->lisaa_virheilmoitus("Ei pitaisi olla tallennuskelpoinen!"); } else { /*$this->lisaa_testikommentti("Muuttujia ei ole asetettu, joten". " saatiin aivan oikein seuraava palaute: ". $lajiluokka->tulosta_virheilmoitukset(),false);*/ } /*$this->lisaa_testikommentti("Asetetaan lajiluokan ylaluokka_id, ja nimi_latina. Testataan uudelleen, onko nyt tallennuskelpoinen:",false);*/ $lajiluokka->set_ylaluokka_id($ylaluokka_id); $lajiluokka->set_nimi_latina($nimi_latina); // Tässä vaiheessa ongelmaksi voi tulla myös se, että nimi_latina on // jo olemassa. Siitä annetaan erillinen ilmoitus. if ($lajiluokka->on_tallennuskelpoinen(true)) { $this->lisaa_testikommentti("Lajiluokka on tallennuskelpoinen", false); $onnistuminen = $lajiluokka->tallenna_uusi(); if ($onnistuminen === Lajiluokka::$OPERAATIO_ONNISTUI) { $tallennetun_id = mysql_insert_id(); $this->lisaa_testikommentti("Lajiluokan tallennus onnistui!", false); } else { $this->lisaa_testikommentti($onnistuminen . " Virhe tallennuksessa (luo_\n ja_tallenna_lajiluokka())!" . " Arvot: ylaluokka_id=" . $lajiluokka->get_ylaluokka_id() . ", nimi_latina=" . $lajiluokka->get_nimi_latina(), true); } } else { // Tämä ei aina ole vastoin toivomuksia! $this->lisaa_testikommentti($lajiluokka->tulosta_virheilmoitukset(), false); } return $tallennetun_id; }