Ciao a tutti,
Scusate ma sono alle prime armi e mi sono ritrovata a dover creare un sito con PHP (per un gioco di ruolo ) senza averne le basi tecniche.
Ho bisogno di fare in modo che un campo della mia tabella mysql, dal valore numerico, incrementi di 1 ogni volta che un altro campo di tipo testuale raggiunge un determinato numero di caratteri, per un minimo di 4 invii al giorno e fino al raggiungimento di 3 incrementi del campo numerico.
Tizio scrive una frase di 1000 caratteri, per almeno 4 volte nell'arco della giornata =riceve 1 punto (che incrementa il campo numerico). Può ricevere al massimo 3 punti. Tutte le frasi che potrebbero generare punti oltre questo valore, non lo faranno.
Per ora mi è stato consigliato di fare in un modo, il quale però mi risolve unicamente una parte del problema e non mi conteggia il numero di frasi inviate.
Scusate ma sono alle prime armi e mi sono ritrovata a dover creare un sito con PHP (per un gioco di ruolo ) senza averne le basi tecniche.
Ho bisogno di fare in modo che un campo della mia tabella mysql, dal valore numerico, incrementi di 1 ogni volta che un altro campo di tipo testuale raggiunge un determinato numero di caratteri, per un minimo di 4 invii al giorno e fino al raggiungimento di 3 incrementi del campo numerico.
Tizio scrive una frase di 1000 caratteri, per almeno 4 volte nell'arco della giornata =riceve 1 punto (che incrementa il campo numerico). Può ricevere al massimo 3 punti. Tutte le frasi che potrebbero generare punti oltre questo valore, non lo faranno.
Per ora mi è stato consigliato di fare in un modo, il quale però mi risolve unicamente una parte del problema e non mi conteggia il numero di frasi inviate.
PHP:
$PARAMETERS['settings']['exp_by_chat']['number'] = '1000';
$PARAMETERS['settings']['exp_by_chat']['max_exp'] = '3';
if($PARAMETERS['mode']['exp_by_chat']=='ON')
{
$msg_length = strlen($chat_message);
$char_needed = gdrcd_filter('num', $PARAMETERS['settings']['exp_by_chat']['number']);
$exp_bonus = $msg_length>=$char_needed;
}
if($PARAMETERS['mode']['exp_by_chat']=='ON')
{
//definisce $exp_giornaliera per evitare notice nel while
$exp_giornaliera = 0;
//Query che recupera il numero di caratteri per messaggi del pg delle ultime 24 ore che hanno generato px;
$query = "SELECT CHAR_LENGTH(testo) AS msg_length";
$query .= " FROM chat";
$query .= " WHERE"; //CONDIZIONI
$query .= " mittente = '".gdrcd_filter_in($_SESSION['login'])."'"; //il mittente è il pg loggato
$query .= " AND (tipo = 'P' OR tipo = 'A' OR tipo = 'M')"; //il messaggio è del tipo di quelli che danno px
$query .= " AND DATE_ADD( ora, INTERVAL 1 DAY ) >= NOW()"; //è meno vecchio di 24h
$query .= " AND CHAR_LENGTH(testo) > ".gdrcd_filter('num',$PARAMETERS['settings']['exp_by_chat']['number']); //è della lunghezza minima per generare px
//echo $query;
$result = gdrcd_query($query,'result');
//clalcola l'esperienza accumulata nelle ultime 24h
while($row = gdrcd_query($result,'fetch'))
{
$exp_giornaliera = $exp_giornaliera + ($row['msg_length']>=$char_needed);
}
if($exp_giornaliera < $PARAMETERS['settings']['exp_by_chat']['max_exp'])
{
if ($m_type == 'A' || $m_type == 'P' || $m_type == 'M')
gdrcd_query("UPDATE personaggio SET esperienza = esperienza + ".$exp_bonus." WHERE nome = '".$_SESSION['login']."' LIMIT 1");
}
}