Witam stworzyłem sonde w metodzie proceduralnej i postanowiłem ją przenieść do OOP. Prosze was o ocenę wykonania tej sondy, bo szczerze mówiąc to nie potrafię zbytnio dostrzec zalet rozwiązania obiektowego, pewnie wszystko jest źle.
<?php
class Sonda {
public $tablica = array();
public function __construct($odp,$cookie,$tablica) {
$this->tablica = $tablica;
$this->odp = $odp;
$this->cookie = $cookie;
$this->setCookie();
$this->explodeArray();
$this->addPointToBase();
$this->showResults();
}
}
public function explodeArray() {
if ($this->cookie != "1" && !isset($this->odp)) { echo '<form action="" method="post"><ul id="sonda">'; $array = $this->tablica;
$explode_array = explode(",", $array);
for ($i=0;$i<count($explode_array);$i++)
echo '<li><label><input type="radio" name="odp" value="1" id="ankieta_0">'.$explode_array[$i].'</label></li>'; echo '</ul><div><input name="submit" value="Głosuj" type="submit"></div></form>'; }}
public function addPointToBase() {
include("config.php");
$query = mysqli_query($con, 'SELECT odp'.$this->odp.' from sonda');
@$result = mysqli_fetch_array($query);
$wynik = $result["odp".$this->odp] + 1;
$sql = mysqli_query($con, 'UPDATE sonda SET odp'.$this->odp.'='.$wynik.'');
}}
public function showResults() {
if ($this->cookie == "1" || (isset($this->odp))) { include("config.php");
$query = mysqli_query($con, 'select * from sonda');
$result = mysqli_fetch_array($query);
for($this->odp = 1; $this->odp<=6; $this->odp++) {
$sum_votes = $sum_votes + $result['odp'.$this->odp];
}
for ($this->odp = 1; $this->odp<=6; $this->odp++) {
$procent[$this->odp] = round(($result['odp'.$this->odp]/$sum_votes)*100)."%"; }
$array = $this->tablica;
$explode_array = explode(",", $array); for ($this->odp = 1; $this->odp<=6; $this->odp++) {
echo '<li id="wyniksondy">'.$explode_array[$this->odp-1].": <b>".$procent[$this->odp]."</b> (".$result['odp'.$this->odp].")</li>"; }
echo '<br>Ilość głosów: <b>'.$sum_votes.'</b>'; }}
}
?>