/** * Poistaa yhden tai useamman tietueen tietokannasta. Poistettavien * tunnisteet (esim. id) annetaan parametritaulukossa. * * @param string $tunnistesarakenimi Sarakkeen nimi, jota vastaavasta * tietokantasarakkeesta tunnistetta etsitään. * @param array $valinnat * @param Tietokantaolio $tietokantaolio * @param string $taulun_nimi Sen taulun nimi, josta tietueet poistetaan. * @return string Palauttaa viestin suorituksen onnistumisesta, joka * näytetään käyttäjälle. */ function poista_tietueet($tunnistesarakenimi, &$valinnat, $tietokantaolio, $taulun_nimi) { $vastaus = ''; $lkm = 0; if (!isset($valinnat)) { $vastaus = "Poisto epäonnistui!\n Valintataulukko on määrittelemätön"; } else { if ($valinnat == "" || sizeof($valinnat) == 0) { $vastaus = "Poisto epäonnistui!\n Yhtään valintaa ei löytynyt!"; } else { foreach ($valinnat as $id) { /********************kerkkasten erikoistoiminto********************/ $emoidkysely = "SELECT emo_id\n FROM viestit\n WHERE id = '" . $id . "'\n AND taso = '2'"; $emoidhaku = $tietokantaolio->tee_OMAhaku($emoidkysely); $emooliotaulu = $tietokantaolio->hae_osumarivit_olioina($emoidhaku); if (sizeof($emooliotaulu) > 0) { $emoid = $emooliotaulu[0]->emo_id; if (isset($emoid)) { muuta_kommenttien_lkm(-1, $emoid, $tietokantaolio); } } /******************************************************************/ // poista_rivi poistaa korkeintaan yhden tietueen (rajoitettu). $poisto = $tietokantaolio->poista_rivi($taulun_nimi, $tunnistesarakenimi, $id); if ($poisto == "onnistui") { $lkm++; } } $vastaus = "Tietueita poistettiin onnistuneesti " . $lkm . " kpl."; } } return $vastaus; }
/** Metodi, joka tallentaa uuden viestin tiedot tietokantaan. Palauttaa arvon * false, jos tallennus epäonnistuu, muuten tallennetun viestin id:n. * * &oma_id on viestin kirjoittajan id. * @param int $emoviestin_id on luku, joka joko antaa kommentoitavan viestin * id:n tai arvon -1, jolloin uusi viesti ei ole mikään kommentti. * KORJAA: JOS VIESTI ON KOMMENTTI! */ function tallenna_uusi_viesti($oma_id, &$teema_id, &$aihe, &$viesti, $on_kommentti, $emoviestin_id, $tietokantaolio) { $onnistu = false; $tallennushetki_sek = time(); $kommenttien_lkm = 0; $taso = 1; if ($on_kommentti) { $kommenttien_lkm = -1; $taso = 2; } $kyselylause = "INSERT INTO viestit\n (henkilo_id, tallennushetki_sek, teema_id,\n aihe, viesti, taso, kommenttien_lkm, emo_id)\n VALUES\n ({$oma_id},{$tallennushetki_sek},{$teema_id},\n '{$aihe}','{$viesti}',{$taso},{$kommenttien_lkm},\n {$emoviestin_id})"; mysql_query($kyselylause) or die("Viestin lisäys epäonnistui! (Yhteys- tai ohjelmavirhe.\n Kokeile uudestaan!)"); $vastaus_id = mysql_insert_id(); // Hakee viimeksi lisätyn rivin id:n. // Tämä ei ole kovin vakaalla pohjalla välttämättä, voisi metodin parantaa. // Saattaa olla mahdollista, että kommenttien lkm on systemaattisesti // väärä (sitä ei tarkisteta koskaan). if ($on_kommentti) { muuta_kommenttien_lkm(1, $emoviestin_id, $tietokantaolio); } if (mysql_affected_rows() == 1) { $onnistu = $vastaus_id; // Aktiivisuusmerkintä: $viimeksi_aktiivi = time(); $aktiivisuuslaji = Aktiivisuus::$UUDEN_VIESTIN_TALLENNUS; paivita_aktiivisuus($oma_id, $tietokantaolio, $viimeksi_aktiivi, $aktiivisuuslaji); } return $onnistu; }