Witam,
chciałbym się spytać czy da się jakoś zminimalizować ten kod, bo wydaje mi się on trochę za długi
<?php
try
{
$pdo = new PDO
('mysql:host=localhost;dbname=xxxx', 'xxxx', 'xxx', array(PDO
::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
function showPoll()
{
// Losowanie rekordu
$sql = $pdo->query('SELECT * FROM `questions` WHERE `status` = 0');
$row = $sql->fetchAll(PDO::FETCH_COLUMN);
$sql = $pdo->prepare('SELECT * FROM `questions` q JOIN `answers` a USING(qid) WHERE a.`qid` = :qid'); //SELECT
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$stmt = $pdo->prepare('UPDATE `questions` q JOIN `answers` a USING(qid) SET q.`votes` = q.`votes` + 1, a.`vote` = a.`vote` + 1 WHERE q.`qid` = :qid AND a.`aid` = :aid'); //UPDATE
$stmt->bindValue(':qid', $_POST['qid'], PDO::PARAM_INT); //UPDATE
$stmt->bindValue(':aid', $_POST['answer'], PDO::PARAM_INT); //UPDATE
$stmt->execute(); //UPDATE
$sql->bindValue(':qid', $_POST['qid'], PDO::PARAM_INT); //SELECT
$sql->execute(); //SELECT
$data = $sql->fetchAll();
$question = $data[0];
echo '<ul><div style="max-width: 120px;"> <li class="first"><b>'.$question['question'];
echo '<br />Głos został oddany!</li>'; foreach($data as $answer)
{
$percent = round(($answer['vote'] / $answer['votes']) * 100
); echo '<li>'.$answer['answer'].'<br /> głosów: '.$answer['vote'].', '.$percent.'%<br />
<div style="border: 1px solid rgb(158, 152, 131); background: rgb(74, 8, 5); height: 10px; width: '.$percent.'%;"></div></li>';
}
$sql->closeCursor();
}
else
{
$sql->bindValue(':qid', $row[$rand_keys], PDO::PARAM_INT);
$sql->execute();
$data = $sql->fetchAll();
$question = $data[0];
echo '<ul><div style="max-width: 120px;"> <li class="first"><b>'.$question['question'];
if (2==3)
{
echo '<br />Głosowałeś już!</li>'; foreach($data as $answer)
{
$percent = round(($answer['vote'] / $answer['votes']) * 100
); echo '<li>'.$answer['answer'].'<br /> głosów: '.$answer['vote'].', '.$percent.'%<br />
<div style="border: 1px solid rgb(158, 152, 131); background: rgb(74, 8, 5); height: 10px; width: '.$percent.'%;"></div></li>';
}
$sql->closeCursor();
}
else
{
echo '</li><form id="poll" method="post" action="">'; foreach($data as $answer)
{
echo '<li><input type="radio" name="answer" value='.$answer['aid'].' /> '.$answer['answer'].'</li>'; }
$sql->closeCursor();
echo '<li><input type="text" name="qid" value='.$row[$rand_keys].' style="display: none;" /><div align="center"><input class="button" type="submit" value="Oddaj głos!" /></div></li></form>'; }
}
}
}
catch(PDOException $e)
{
}
?>
Ten post edytował julek12 24.08.2009, 08:00:29