Je bloque sur un petit probleme:
J'ai un tableau dans lequel on rentre des stats régulierement et j'aimerai que la personne qui n'est pas rentré ses stats au bout d'une semaine soit surligné en rouge.
J'ai une colonne MAJ, dans lequel s'affiche automatiquement la date du jour des qu'il valide ses nouvelles stats.
Avant ma colonne MAJ etait en Varchar, donc la date s'affichait bien dans la BDD lorsqu'on validait les stats.
Mais vu que je veut surligné la ligne de la personne qui n'a pas rentré ses stats au bout semaine on m'a dis de mettre ma colonne MAJ en DateTime.
Donc je l'ai mise en DateTime maintenant j'ai que 00/00/00 00:00:00
J'ai cette erreur:
Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct() [<a href='datetime.--construct'>datetime.--construct</a>]: Failed to parse time string (14/11/2010-13:43) at position 0 (1): Unexpected character' in C:\wamp\www\test\modifier_stats.php:134 Stack trace: #0 C:\wamp\www\test\modifier_stats.php(134): DateTime->__construct('14/11/2010-13:4...') #1 C:\wamp\www\test\modifier_stats.php(169): buildClodoTable('') #2 {main} thrown in C:\wamp\www\test\modifier_stats.php on line 134
Voici mon code ou l'on rentre nos stats:
<?php
date_default_timezone_set('Europe/Paris');
$date = new DateTime();
$date->format('Y-m-d');
//On se connecte a la Base de donnee
include('mysqlcnn.php');
//On verifie si lutilisateur est connecte
if(isset($_SESSION['Clodo']))
{
//On verifie si le formulaire a ete envoye
if(isset($_POST['ATT'], $_POST['DEF'], $_POST['habilite'], $_POST['attaque'], $_POST['defense']))
{
$ATT = mysql_real_escape_string($_POST['ATT']);
$DEF = mysql_real_escape_string($_POST['DEF']);
$fightvalue=($ATT*1.1)+$DEF;
$habilite = mysql_real_escape_string($_POST['habilite']);
$attaque = mysql_real_escape_string($_POST['attaque']);
$defense = mysql_real_escape_string($_POST['defense']);
//On modifie les informations de l utilisateur avec les nouvelles
if(mysql_query('update stats set ATT="'.$ATT.'", DEF="'.$DEF.'", Fightvalue="'.$fightvalue.'", habilite="'.$habilite.'", attaque="'.$attaque.'", defense="'.$defense.'", MAJ='.$date.' where Clodo="'.$_SESSION['Clodo'].'"'))
{
//Si ca a fonctionne, on naffiche pas le formulaire
$form = true;
}
else
{
//Sinon on dit quil y a eu une erreur
$form = true;
$message = 'Une erreur est survenue lors des modifications.';
}
}
}
//Sinon, on dit que les mots de passes ne sont pas identiques
//$form = true;
//$message = 'Les mot de passe que vous avez entré ne sont pas identiques.';
else
{
$form = true;
}
if($form)
{
//On affiche un message sil y a lieu
if(isset($message))
{
echo '<strong>'.$message.'</strong>';
}
//Si le formulaire a deja ete envoye on recupere les donnes que lutilisateur avait deja insere
if(isset($_POST['ATT'],$_POST['DEF'],$_POST['habilite'],$_POST['attaque'],$_POST['defense']))
{
$ATT = htmlentities($_POST['ATT']);
$DEF = htmlentities($_POST['DEF']);
$habilite = htmlentities($_POST['habilite']);
$attaque = htmlentities($_POST['attaque']);
$defense = htmlentities($_POST['defense']);
}
else
{
//Sinon, on affiche les donnes a partir de la base de donnee
$dnn = mysql_fetch_array(mysql_query('select ATT,DEF,habilite,attaque,defense from stats where Clodo="'.$_SESSION['Clodo'].'"'));
$ATT = htmlentities($dnn['ATT']);
$DEF = htmlentities($dnn['DEF']);
$habilite = htmlentities($dnn['habilite']);
$attaque = htmlentities($dnn['attaque']);
$defense = htmlentities($dnn['defense']);
}
//On affiche le formulaire
?>
Voici mon code pour afficher le tableau avec mon code pour surligner au bout de 7 jours:<?php
// Fonction pour construire une table à partir des résultat de la requête
function buildClodoTable($where='') {
// Ajouter la clause where si définie (par défaut, tout le temps)
// Construire la requete
$query = "SELECT Clodo,ATT,DEF,Fightvalue,habilite,Attaque,defense,MAJ FROM stats WHERE Type='Equipier' ORDER BY Id DESC ";
// Executer la requete
$result = mysql_query($query);
if ($result==false) {
}
$lines = '';
while ($row = mysql_fetch_array($result)) {
$date = new DateTime();
$date->format('Y-m-d');
$interval = date_diff(new datetime($row['MAJ']),new DateTime());
if($interval->format('%R%d') >= 7) $style = 'background-color:red';
else $style = '';
$lines .= '
<tr style="'.$style.'">
<td>'.$row['Clodo'].'</td>
<td>'.$row['ATT'].'</td>
<td>'.$row['DEF'].'</td>
<td>'.$row['Fightvalue'].'</td>
<td>'.$row['habilite'].'</td>
<td>'.$row['Attaque'].'</td>
<td>'.$row['defense'].'</td>
<td>'.$row['MAJ'].'</td>
</tr>';
}
return '
<table border="1" cellpadding=5 cellspacing=5 height=50>
<tr>
<th class="name"> Nom clodo </th>
<th> ATT </th>
<th> DEF </th>
<th> Fightvalue </th>
<th> habilité </th>
<th> attaque </th>
<th> défense </th>
<th> MAJ </th>
</tr>'.$lines.'
</table>';
}
//Construire le tableau à partir du résultat de la requête
$table = buildClodoTable($where='');
echo $table;
?>
Merci de votre aide