GDRCD 5.4.1 - Carisma
GDRCD 5.4.1 - Carisma postato il 17/11/2019 10:58:22 nel forum programmazione, open source e hosting
Buongiorno a tutti,
avevo trovato un addon per l'aumento dell'esperienza a tempo, ma non compatibile con questa versione di gdrcd.
Qualcuno puoi indicarmi un'alternativa pr questa versione?
Grazie mille
Pagine → 1
23/11/2019 15:16:45 e modificato da gdr-online.com il 25/11/2019 17:03:51
Ho cercato di adattare l'addon alla versione 5.4, vi incollo le mie modifiche:
$MySql = "SELECT UltimaEsp, (DATE_ADD(UltimaEsp, INTERVAL 5 MINUTE) < NOW()) AS Tempo FROM personaggio WHERE Nome = '".$_SESSION['login']."'";
$Result = gdrcd_query($MySql);
$rs = mysqli_fetch_row($Result);
$Tempo_ok = $rs['Tempo'];
$UltimaEsp = $rs['UltimaEsp'];
$rs->close;
if ($Tempo_ok ==1) {
$MySql = "UPDATE personaggio SET esperienza = esperienza + '1' WHERE Nome = '".$_SESSION['login']."'";
$Result = gdrcd_query($MySql);
$MySql = "UPDATE personaggio SET UltimaEsp = NOW() WHERE Nome = '".$_SESSION['login']."'";
$Result = gdrcd_query($MySql);
}
Il problema che non riesco a risolvere, è che "Tempo" non ha mai il valore di 1, come se non esistesse.
Potete aiutarmi?
23/11/2019 16:53:48
//controllo le l'esperienza del pg è stata aggiornata più recentemente di 5 minuti fa
$MySql = "SELECT
UltimaEsp,
(DATE_ADD(UltimaEsp, INTERVAL 5 MINUTE) < NOW()) AS Tempo
FROM personaggio
WHERE
nome = '" . gdrcd_filter_in($_SESSION['login']) . "'
LIMIT 0,1";
$Result = gdrcd_query($MySql,'result');
//SE NON VIENE RESTITUITA NESSUNA RIGA E QUINDI LA DATA DELL'ULTIMA ESPERIENZA È STATA AGGIORNATA DA PIÙ DI 5 MINUTI
if (gdrcd_query($Result,'num_rows) == 0) {
//incremento l'esperienza
$MySql = "UPDATE personaggio
SET
esperienza = esperienza + 1
WHERE
nome = '" . gdrcd_filter_in($_SESSION['login']) . "'";
gdrcd_query($MySql);
//aggiorno l'orario dell'ultimo agigornamento
$MySql = "UPDATE personaggio
SET
UltimaEsp = NOW()
WHERE
nome = '" . gdrcd_filter_in($_SESSION['login']) . "'";
gdrcd_query($MySql);
}
Così dovrebbe funzionare, se non ho fatto errori di sintassi che non ho controllato perchè non potevo testarla su una verisone del gdrcd al momento, ma dovrebbe essere chiara nel procedimento almeno.
Ho corretto alcuni errori che mi permetto di segnalarti:
nella query indicavi un campo come "Nome" invece di "nome", attenzione eprchè nei serve linux, spesso i nomi dei campi distinguono tra maiuscole e minuscole.
Mancavano i filtri in ingresso per le variabili, cosa che consiglio sempre di mettere.
speroc he comunque ti possa essere di aiuto per capire come procedere.
23/11/2019 17:33:05 e modificato da gdr-online.com il 25/11/2019 17:04:06
Grazie mille, purtroppo però la condizione:
if (gdrcd_query($Result,'num_rows') == 0)
//controllo se l'esperienza del pg è stata aggiornata più recentemente di 5 minuti fa
$MySql = "SELECT UltimaEsp, (DATE_ADD(UltimaEsp, INTERVAL 5 MINUTE) < NOW()) AS Tempo FROM personaggio WHERE nome = '" . gdrcd_filter_in($_SESSION['login']) . "'LIMIT 0,1";
$Result = gdrcd_query($MySql,'result');
//SE NON VIENE RESTITUITA NESSUNA RIGA E QUINDI LA DATA DELL'ULTIMA ESPERIENZA È STATA AGGIORNATA DA PIÙ DI 5 MINUTI
if (gdrcd_query($Result,'num_rows') == 0) {
//incremento l'esperienza
$MySql = "UPDATE personaggio SET esperienza = esperienza + 1 WHERE nome = '" . gdrcd_filter_in($_SESSION['login']) . "'";
gdrcd_query($MySql);
//aggiorno l'orario dell'ultimo aggiornamento
$MySql = "UPDATE personaggio SET UltimaEsp = NOW() WHERE nome = '" . gdrcd_filter_in($_SESSION['login']) . "'";
gdrcd_query($MySql);
}
?>
23/11/2019 18:14:11 e modificato da gdr-online.com il 25/11/2019 17:04:17
Ovvio che non si verifichi mai la condizione, stupido io, ho letto meglio solo ora la query, chissà dove avevo la testa quando la ho letta
$MySql = "SELECT UltimaEsp FROM personaggio WHERE nome = '" . gdrcd_filter_in($_SESSION['login']) . "' AND (DATE_ADD(UltimaEsp, INTERVAL 5 MINUTE) < NOW()) LIMIT 0,1";
23/11/2019 20:01:57
Nulla non entra nella condizione... ti mando lo screenshot dell'editor.
http://prntscr.com/q13auh
25/11/2019 16:59:52
Nessuno riesce a darmi un aiuto? Non riesco proprio a capire perchè il valore della condizione resti sempre a 1... Grazie.
25/11/2019 20:00:54
Risolto ragazzi... il problema era il "<" che ho cambiato con ">"... era proprio la logica che non andava bene.
Grazie a tutti lo stesso.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Hero Wars ↗
The Coven ↗
Exclusive Villa GdR ↗
Cafuné ↗
Project Entropy ↗
Imperion ↗
CRSED: F.O.A.D. ↗
Wuthering Waves ↗