$data = parse_ini_file("../tietokanta/db-config.ini.php", true); require '../luokat/db_yhteys_luokka.class.php'; $data_db = $data['Tietokannan tiedot']; $db = new DByhteys($data_db['user'], $data_db['pass'], $data_db['name'], $data_db['host']); $f = file('tietokanta.sql', FILE_IGNORE_NEW_LINES); // Tietokannan taulut foreach ($f as $k => $v) { // Poistetaan .sql-tiedoston kommentit $f[$k] = strstr($v, '--', true) ?: $v; } $db_file = explode(";", implode("", $f)); // Muunnetaan jokainen query omaan indexiin foreach ($db_file as $sql) { if (!empty($sql) && strlen($sql) > 5) { $db->query($sql); } } // Ei tehdä mitään, jos tietokanta on jo alustettu if ($db->query("SELECT 1 FROM kayttaja LIMIT 1")) { die('Tietokanta on jo alustettu!'); } $db->prepare_stmt("INSERT INTO kayttaja (sahkoposti, salasana_hajautus, yllapitaja, yritys_id) \n\t\tVALUES (?, ?, 1, 1)"); for ($i = 0; $i < count($data['Admin tunnukset']['kayttajatunnus']); $i++) { $db->run_prepared_stmt([$data['Admin tunnukset']['kayttajatunnus'][$i], password_hash($data['Admin tunnukset']['salasana'][$i], PASSWORD_DEFAULT)]); } // Luodaan ylläpitäjälle yritys ja ostoskori $result = $db->query("INSERT INTO yritys (nimi, y_tunnus, maa, sahkoposti, puhelin, katuosoite, postinumero, postitoimipaikka) VALUES (?,?,?,?,?,?,?,?)", [$data['Admin tunnukset']['y_nimi'], $data['Admin tunnukset']['y_tunnus'], $data['Admin tunnukset']['y_maa'], $data['Admin tunnukset']['y_sahkoposti'], $data['Admin tunnukset']['y_puhelin'], $data['Admin tunnukset']['y_osoite'][0], $data['Admin tunnukset']['y_osoite'][1], $data['Admin tunnukset']['y_osoite'][2]]); $result = $db->query("INSERT INTO ostoskori (yritys_id) VALUES (?)", [1]); if ($result) { echo 'Ylläpitäjä luotu.<br>Tietokannan asennus on nyt suoritettu.<br>Poista tämä tiedosto (<i>asenna.php</i>) palvelimelta.'; }
/** * Hakee ostoskorissa olevat tuotteet tietokannasta lokaaliin arrayhin. Hakee vain ID:n ja kpl-maaran. * @param DByhteys $db * @param boolean $kaikki_tiedot <p> Haetaanko kaikki tiedot (tuotteet & kappalemäärä), * vai vain montako eri tuotetta ostoskorissa on ( COUNT(tuote_id) ja SUM(kpl_maara) ). */ public function hae_ostoskorin_sisalto(DByhteys $db, $kaikki_tiedot = FALSE) { if (!$kaikki_tiedot) { $sql = "SELECT COUNT(tuote_id) AS count, IFNULL(SUM(kpl_maara), 0) AS kpl_maara \n\t\t\t\t\tFROM ostoskori_tuote \n\t\t\t\t\tWHERE ostoskori_id = ?"; $row = $db->query($sql, [$this->ostoskori_id]); $this->montako_tuotetta = $row->count; $this->montako_tuotetta_kpl_maara_yhteensa = $row->kpl_maara; } else { $this->montako_tuotetta_kpl_maara_yhteensa = 0; // Varmuuden vuoksi nollataan $this->montako_tuotetta = 0; // Ditto $this->tuotteet = array(); $sql = "SELECT tuote_id, kpl_maara\n\t\t\t\t\tFROM ostoskori_tuote\n\t\t\t\t\tWHERE ostoskori_id = ?"; $db->prepare_stmt($sql); $db->run_prepared_stmt([$this->ostoskori_id]); while ($row = $db->get_next_row()) { $this->tuotteet[$row->tuote_id] = $row; $this->montako_tuotetta_kpl_maara_yhteensa += $row->kpl_maara; } $this->montako_tuotetta = count($this->tuotteet); $this->cart_mode = 1; } }