Buondì a tutti!
Oggi avrei bisogno di qualcuno un po più esperto di me con la richiesta al DB tramite PDO.
Vi allego subito il codice PHP e poi vi spiego :emoji_slight_smile:
Al momento questo codice, in teoria, non fa altro che verificare se il codice immesso è presente o meno nel DB e stampare il premio correlato; ho un database chiamato codes con due tabelle(code,premio)Codice PHP:
<?php
class Premio
{
protected $pdo;
function __construct($pdo)
{
$this->pdo = $pdo;
}
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>';
}
}
public function fetchCODE($table)
{
$queryfetch = $this->pdo->prepare('SELECT * from codes WHERE id=:session LIMIT 1');
$queryfetch->execute(array(':session'=> $_SESSION['premio']));
$fetch = $queryfetch->fetch(PDO::FETCH_ASSOC);
return $fetch[$table];
}
public function sessionEnabled()
{
if(isset($_SESSION['premio']) == '')
{
return false;
}
else
{
return true;
}
}
public function destroySession()
{
unset($_SESSION['premio']);
session_destroy();
header('Location: index.php?#');
return true;
}
public function deleteKey()
{
$querydelete = $this->pdo->prepare('DELETE FROM codes WHERE code=:coderow');
if($querydelete->execute(array(':coderow'=>$this->fetchCODE('code'))))
{
$this->destroySession();
}
return $querydelete;
}
}
Ok, io adesso vorrei far un'altra richiesta, ovvero verificare se quel codice ha un premio correlato che si chiama "PERDENTE", se questo funzione è vera allora potrà stampare "Il codice inserito risulta non vincente!"
Se non capite qualcosa nel caso vi farei vedere con Teamviewer un po meglio la situazione o comunque vi farei qualche screen.
Thanks : )