Ejemplo n.º 1
0
$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;
     }
 }