Dipende da come lo vuoi impostare.
Io creerei un nuovo metodo premioVincente che restituisce false se il codice corrisponde a PERDENTE, true altrimenti:
Codice PHP:
class Premio
{
protected $pdo;
function __construct($pdo)
{
$this->pdo = $pdo;
}
/**
* Restituisce true se il codice è vincente, false altrimenti.
* @param string $codice Codice da controllare
* @return bool True se e solo se il codice è vincente
*/
protected function premioVincente($codice) {
$stm = $this->pdo->prepare('SELECT * FROM codes WHERE code=:codereward AND premio="PERDENTE"');
$stm->execute(array(':codereward' => $codice));
return $stm->rowCount() === 0);
}
public function ritiraPremio()
{
$querypremio = $this->pdo->prepare('SELECT * from codes WHERE code=:codereward');
$querypremio->execute(array(':codereward'=>htmlspecialchars($_POST['codereward'])));
$premio = $querypremio->fetch(PDO::FETCH_ASSOC);
if($querypremio->rowCount() > 0)
{
if($premio['code'] == $_POST['codereward'])
{
$_SESSION['premio'] = $premio['id'];
header('Refresh: 2; url=/premio.php');
return true;
}
else
{
return false;
}
}
else
{
# echo '<div style="text-align: center; color: #fff;background-color: #D3020C; min-height: 25px; width: 100%;">Codice inesistente!</div>';
}
}
// ...e poi il resto del codice
così puoi richiamare il metodo per controllare se il codice è vincente dove e quando vuoi, passandogli $_POST['codereward'].