






Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
Pripremite ispite
Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Nabavite poene za preuzimanje
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
web programiranje, informatika, vezbe iz web programiranja, zadaci sa vezbi, zadaci, zadaci iz web programiranja,Nizovi u jeziku PHP, Nizovi sa numeričkim indeksiranjem, Veza sa bazom podataka, Pristup MySQL bazi na lokalnom serveru, Rad sa sesijama i cookies, Funkcije, Sintaksa Regularnih Izraza
Tipologija: Vežbe
1 / 10
Ova stranica nije vidljiva u pregledu
Ne propustite važne delove!







Pitanje.php
setTableName(‘pitanje’); // Setovanje kolona sa nazivom, tipom i duzinom $this->hasColumn(‘tekst’, ‘string’, 255); $this->hasColumn(‘datum’, ‘date’); } // Inicijalizacija tabele public function setUp() { // Svakom slogu se dodaje polje za vreme modifikacije $this->actAs(‘Timestampable’); // definisanje relacije prema tabeli Odgovor $this->hasMany(‘Odgovor’, array(‘local’ => ‘id’, ‘foreign’ => ‘pitanje_id’)); } }
?>
Odgovor.php
setTableName(‘odgovor’); // Setovanje kolona sa nazivom, tipom i duzinom $this->hasColumn(‘pitanje_id’, ‘integer’, 20); $this->hasColumn(‘tekst’, ‘string’, 255); $this->hasColumn(‘broj’, ‘integer’, 20); }
// Punjenje tabela podacima (primer) $pitanje = new Pitanje(); $pitanje->tekst = "Koju Web platformu za razvoj koristite?"; $pitanje->datum = date(‘Y-m-d’); $pitanje->save();
$odgovor1 = new Odgovor(); $odgovor1->tekst = ‘PHP’; $odgovor1->broj = 0; // Odredjivanje relacije (iza strelice ide naziv korelirane klase) $odgovor1->Pitanje = $pitanje; $odgovor1->save();
$odgovor2 = new Odgovor(); $odgovor2->tekst = ‘Java EE’; $odgovor2->broj = 0; // Odredjivanje relacije (iza strelice ide naziv korelirane klase) $odgovor2->Pitanje = $pitanje; $odgovor2->save();
?>
C:\wamp\bin\php\php5.3.0>php C:\wamp\www\Doctrine\kreiraj-tabele.php
anketa.php
Anketa
php include ‘konfiguracija.php’;
// Kreiranje standardnog upita u Doctrine, // vraca pitanja poredjana od najnovijeg ka najstarijem
$upit = Doctrine_Query::create()
// Uzmi samo najnovije pitanje $pitanje = $upit->fetchOne(Doctrine_Core::HYDRATE_ARRAY);
if (!isset ($pitanje)) die (‘GRESKA: Nema nijedne ankete u bazi!’);
echo " {$pitanje[‘tekst’]} ";
// Doctrine vraca niz odgovora koji su ponudjeni za dato pitanje $odgovori = $pitanje->Odgovor;
// Stampa se forma sa pitanjem i ponudjenim odgovorima na njega echo "";
if ( count($odgovori) > 0 ) {
foreach ($odgovori as $odgovor) { echo " {$odgovor[‘tekst’]} "; }
echo ""; echo ""; } else { echo ‘GRESKA: Nema ponudjenih odgovora u ovoj anketi!’; }
echo ‘‘; ?>
anketa_submit.php
Glasano na anketi
// Ako ima rezultata ispisi pitanja sa linkovima ka skriptovima // za pregled rezultata i brisanje if ( count($pitanja)>0 ) { foreach ($pitanja as $pitanje) { echo ‘‘; echo " {$pitanje[‘tekst’]} "; echo "
pogledaj izvestaj
"; echo "
obrisi
"; echo ‘‘; } } else { echo "
Trenutno nema nijedne ankete u bazi.
"; } ?>Dodavanje nove ankete:
Pitanje
Odgovor #1
Odgovor #2
Odgovor #3
Odgovor #4
Odgovor #5
obrisi.php
Brisanje ankete
Administracija find($_GET[‘pitanje_id’]); // Prvo obrisi sve odgovore vezane za to pitanje $pitanje->Odgovor->delete(); // zatim obrisi samo pitanje $pitanje->delete();
echo "Anketa uspesno obrisana! Klikni ovde za po- vratak na admin stranicu."; } else { die (‘GRESKA: Podaci nisu uspesno poslati!’); } ?>
dodaj.php
Dodavanje ankete
Administracija anketa
tekst = $_GET[‘pitanje_tekst’]; $pitanje->datum = date(‘Y-m-d’);
// Prodji kroz validne odgovore i dodaj ih // povezujuci ih sa odgovarajucim pitanjem foreach ($validni_odgovori as $odgovor_tekst) { $odgovor = new Odgovor(); $odgovor->tekst = $odgovor_tekst; $odgovor->broj = 0; $pitanje->Odgovor[] = $odgovor; }
// Doctrine ne postavlja uslov da se svaki odgovor snimi posebno // Dovoljan je jedan poziv save() za pitanje i korelirani odgovori ce se /// pravilno sacuvati u bazi $pitanje->save(); echo "Anketa uspesno dodata! Klikni ovde za povratak na admin stranicu.";
?>