Comparare date php/mysql

Discussioni su qualunque linguaggio di programmazione o engine
Rispondi
Avatar utente
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Comparare date php/mysql

Messaggio da Vallo92 »

Ciao a tutti,
come va? Dopo anni e anni di assenza ho deciso di ritornare a divertirmi con GM, quindi ho deciso di rifare un salto da voi (ho notato che purtroppo i sopravvissuti sono pochi :piagne: ).

Ma andiamo al sodo:

Stavo cercando di creare un sistema di daily bonus per un piccolo gioco che sto creando, ma non essendo molto ferrato sul php/musql sto avendo qualche difficoltà.
Questo è il mio codice attuale:

Codice: Seleziona tutto

<?php
// dati accesso database
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "dailybonus";

// Create connection
$mysqli = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($mysqli->connect_error) {
    die("Connessione fallita");
}

if(isset($_GET["idgiocatore"])) echo $_GET["idgiocatore"]."<br>"; // echo per debug personale

// Controllo se il giocatore è gia presente nel database, o se è il suo primo login in assoluto
$check = $mysqli->query('SELECT * FROM bonus WHERE idgiocatore = "'.$_GET["idgiocatore"].'"');
// Se è il suo primo login
if($check->num_rows == 0) {
	echo "Primo login del giocatore!<br>";
	// Inserisco il suo id e la data/ora corrente nel database
	$now = new DateTime();
	$update = $mysqli->query('INSERT INTO bonus (idgiocatore,ultimoaccesso) VALUES ("'.$_GET["idgiocatore"].'","'.date_format($now, 'd-m-Y H:i:s').'")'); // provato a togliere now();
	// Se non ci sono errori restituisco "true" per l'assegnazione del bonus
	if ($update) {
		echo "true";
	// Altrimenti restituisco l'errore
	} else { die("ERRORE");}
} else {
	// Altrimenti se il giocatore è già presente nel database
	
	
	$now = new DateTime();
	$resetTime = new DateTime();
	date_time_set($resetTime, 12, 00, 00);
	$a = $mysqli->query('SELECT ultimoaccesso FROM bonus WHERE idgiocatore = "'.$_GET["idgiocatore"].'"');
	$lastLogin = new DateTime((string)$a);
	echo "LastLogin: " . date_format($lastLogin, 'd-m-Y H:i:s') . "<br>";
	echo "Reset time: " . date_format($resetTime, 'd-m-Y H:i:s') . "<br>";
	echo "time: " . date_format($now, 'H') . "<br>";
	
	if ($resetTime < $now) {
		echo "ok1<br>";
		if ($resetTime < $lastLogin) {
			echo "ok2";
		}
	}
	

	
	$update = $mysqli->query('UPDATE bonus SET ultimoaccesso=NOW() WHERE idgiocatore="'.$_GET["idgiocatore"].'"');
	if ($update) {
		 echo "Aggiornato";
	 } else { die("ERRORE");}
}

$mysqli->close(); 
?>
Ho cercato di commentarlo un po’ alla meglio per cercare si farvi capire cosa avevo in mente di fare mentre scrivevo il codice.
Purtroppo peró così la pagina non funziona, perchè ho problemi nella comparazione delle date.

Sapete darmi qualche consiglio a riguardo?

Grazie! :cappa:
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si

Rispondi

Chi c’è in linea

Visitano il forum: Bing [Bot] e 7 ospiti