przewiń do treści

PHP, MySQL i MVC. Tworzenie witryn WWW opartych na bazie danych

Włodzimierz Gajda

$plk = file('panstwa-miasta.txt');
shuffle($plk);
foreach ($plk as $l) {
    $miasta = explode(',', trim($l));
    $miasta = array_map('trim', $miasta);

    $str_kontynent = $miasta[0];
    $str_panstwo = $miasta[1];

    array_shift($miasta);
    array_shift($miasta);
    shuffle($miasta);

    $q = Doctrine_Query::create()
        ->from('Kontynent k')
        ->where('k.nazwa = ?', $str_kontynent);
    $kontynent = $q->fetchOne();
    if (!$kontynent) {
        $kontynent = new Kontynent();
        $kontynent['nazwa'] = $str_kontynent;
        $kontynent['slug'] = string2slug($str_kontynent);
        $kontynent->save();
    }

    $q = Doctrine_Query::create()
        ->from('Panstwo p')
        ->where('p.nazwa = ?', $str_panstwo);
    $panstwo = $q->fetchOne();
    if (!$panstwo) {
        $panstwo = new Panstwo();
        $panstwo['nazwa'] = $str_panstwo;
        $panstwo['slug'] = string2slug($str_panstwo);
        $panstwo['kontynent'] = $kontynent;
        $panstwo->save();
    }

    foreach ($miasta as $str_miasto) {
        $q = Doctrine_Query::create()
            ->from('Miasto m')
            ->where('m.nazwa = ?', $str_miasto);
        $miasto = $q->fetchOne();
        if (!$miasto) {
            $miasto = new Miasto();
            $miasto['nazwa'] = $str_miasto;
            $miasto['slug'] = string2slug($str_miasto);
            $miasto['panstwo'] = $panstwo;
            $miasto->save();
        }
    }
}

Listing 11.13. Wstawianie rekordów do bazy danych

Rozdział 11. Relacje 1:n

listing-11-13.txt

Reklama

Szkolenia z Symfony 2.0