<?php
  class KysimusteVabrik{
     private $yhendus;
	 function __construct($yhendus){
	   $this->yhendus=$yhendus;
	 }
	 function loeBaasistKysimus($kysimuse_id){
	    $kask=$this->yhendus->prepare("SELECT kysimusetekst, tyyp FROM kysimused
		   WHERE id=?");
		$kask->bind_param("i", $kysimuse_id);
		$kask->bind_result($kysimusetekst, $tyyp);
		$kask->execute();
		$kysimus=null;
		if($kask->fetch()){
		  if($tyyp=='yksoige'){
		    $kysimus=new Kysimus($kysimusetekst, $kysimuse_id);
		  }
		  if($tyyp=='mituoiget'){
		    $kysimus=new MitmeOigegaKysimus($kysimusetekst, $kysimuse_id);
		  }
		  $kask->close();
		  if($kysimus==null){
		    throw new Exception("Tundmatu kysimuse tyyp: $tyyp");
		  }
		} else {
		  throw new Exception("Küsimus $kysimuse_id puudub baasist");
		}
		$this->lisaKysimuseleBaasistVariandid($kysimuse_id, $kysimus);
		return $kysimus;
	 }
	 function lisaKysimuseleBaasistVariandid($kysimuse_id, $kysimus){
	    $kask=$this->yhendus->prepare("SELECT varianditekst, id FROM variandid
		   WHERE kysimuse_id=? ORDER BY RAND()");
		$kask->bind_param("i", $kysimuse_id);
		$kask->bind_result($varianditekst, $id);
		$kask->execute();
		while($kask->fetch()){
		   $kysimus->lisaVariant($varianditekst, $id);
		}
	 }
  }
?>





