Ragazzi, mi faccio pena da solo
Era da moltissimo tempo che non utilizzavo le funzioni create da me, dato che lavoro solo con un CMS, utilizzavo quelle ma mi sono trovato in una situazione un pò imbarazzante
Allora, io ho questa funzione:
Codice PHP:
function control_type($row)
{
global $db, $board_config, $lang;
switch($row)
{
case CHALLENGE_TYPE_SIGNATURE:
$challenge_type = 'Signature';
break;
case CHALLENGE_TYPE_ICON:
$challenge_type = 'Icon';
break;
case CHALLENGE_TYPE_REMAKE:
$challenge_type = 'Remake';
break;
case CHALLENGE_TYPE_COLORIZE:
$challenge_type = 'Colorize';
break;
case CHALLENGE_TYPE_FREE:
$challenge_type = 'A Piacere';
break;
}
return $challenge_type;
}
Poi ho questo codice:
Codice PHP:
include(IP_ROOT_PATH . 'includes/functions_challenge.' . PHP_EXT);
define('CHALLENGE_TYPE_FREE', 0);
define('CHALLENGE_TYPE_ICON', 1);
define('CHALLENGE_TYPE_REMAKE', 2);
define('CHALLENGE_TYPE_COLORIZE', 3);
define('CHALLENGE_TYPE_SIGNATURE', 4);
$sql = 'SELECT challenge_votes_table.id_user, challenge_table.*
FROM ' . CHALLENGE_VOTES_TABLE . ' AS challenge_votes_table
JOIN ' . CHALLENGE_TABLE . ' AS challenge_table
WHERE challenge_table.id = ' . $id_challenge . '
AND challenge_votes_table.id_user = ' . $userdata['user_id'];
if (!($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not read id challenge.', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
control_type($row['type_challenge']);
In poche parole, per non scrivermi ogni volta lo switch, vorrei crearmi una funzione che controlla lo stato e me lo restituisce.
Però non so due cose:
- Faccio bene a fare così? Cioè, le costanti, dovrei definirle nella funzione, oppure prima di includere il file, oppure dovrei eseguire la query anche nella funzione in modo da avere il risultato nella funzione e confrontarlo nello switch?
- Come posso recuperare il valore della funzione? Cioè, dopo che scrivo:
Codice PHP:
control_type($row['type_challenge']);
Come posso fare ad avere il risultato in una variabile da poter utilizzare7stampare in futuro?
Grazie in anticipo delle risposte