par
guilstunt » 27 nov. 2010, 19:21
Je viens de modifier mon code pour enregistrer une date dans ma BDD avec la fonction NOW()
<?php
date_default_timezone_set('Europe/Paris');
$date = date("d-m-Y");
//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']))
{
//On verifie si le mot de passe et celui de la verification sont identiques
//if($_POST['pass']==$_POST['passverif'])
{
//On verifie si le mot de passe a 6 caracteres ou plus
//if(strlen($_POST['pass'])>=6)
{
//On enleve lechappement si get_magic_quotes_gpc est active
if(get_magic_quotes_gpc())
{
$_POST['att'] = stripslashes($_POST['att']);
$_POST['def'] = stripslashes($_POST['def']);
$_POST['habilite'] = stripslashes($_POST['habilite']);
$_POST['attaque'] = stripslashes($_POST['attaque']);
$_POST['defense'] = stripslashes($_POST['defense']);
}
//On verifie si lemail est valide
//if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
{
//On echape les variables pour pouvoir les mettre dans une requette SQL
$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 verifie si le clodo a ete modifie pour un autre et que si celui existe deja
//if($dn['nb']==0 or $_POST['clodo']==$_SESSION['clodo'])
{
//On modifie les informations de lutilisateur avec les nouvelles
if(mysql_query('update membre set att="'.$att.'", def="'.$def.'", fightvalue="'.$fightvalue.'", habilite="'.$habilite.'", attaque="'.$attaque.'", defense="'.$defense.'", maj=NOW() where clodo="'.$_SESSION['clodo'].'"'))
{
//Si ca a fonctionne, on ré-affiche le formulaire pour mettre à jour le tableau
$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 le clodo voulu est deja pris
// $form = true;
//$message = 'Un autre utilisateur utilise déjà le nom d\'utilisateur que vous désirez utiliser.';
}
}
}
//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 membre where clodo="'.$_SESSION['clodo'].'"'));
$att = htmlentities($dnn['att']);
$def = htmlentities($dnn['def']);
$habilite = htmlentities($dnn['habilite']);
$attaque = htmlentities($dnn['attaque']);
$defense = htmlentities($dnn['defense']);
}
La date s'enregistre tres bien dans ma BDD
Le probleme c'est que maintenant j'ai voulu réutiliser la fonction NOW() dans une requete mais ca ne fonctionne pas, ca me met que NOW() n'est pas définie.
<?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)) {
$date2 = new DateTime($row['MAJ']);
if(date_diff($date2,Now()) >= 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("");
echo $table;
?>
Merci de votre aide!
Je viens de modifier mon code pour enregistrer une date dans ma BDD avec la fonction NOW()
[php]<?php
date_default_timezone_set('Europe/Paris');
$date = date("d-m-Y");
//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']))
{
//On verifie si le mot de passe et celui de la verification sont identiques
//if($_POST['pass']==$_POST['passverif'])
{
//On verifie si le mot de passe a 6 caracteres ou plus
//if(strlen($_POST['pass'])>=6)
{
//On enleve lechappement si get_magic_quotes_gpc est active
if(get_magic_quotes_gpc())
{
$_POST['att'] = stripslashes($_POST['att']);
$_POST['def'] = stripslashes($_POST['def']);
$_POST['habilite'] = stripslashes($_POST['habilite']);
$_POST['attaque'] = stripslashes($_POST['attaque']);
$_POST['defense'] = stripslashes($_POST['defense']);
}
//On verifie si lemail est valide
//if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
{
//On echape les variables pour pouvoir les mettre dans une requette SQL
$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 verifie si le clodo a ete modifie pour un autre et que si celui existe deja
//if($dn['nb']==0 or $_POST['clodo']==$_SESSION['clodo'])
{
//On modifie les informations de lutilisateur avec les nouvelles
if(mysql_query('update membre set att="'.$att.'", def="'.$def.'", fightvalue="'.$fightvalue.'", habilite="'.$habilite.'", attaque="'.$attaque.'", defense="'.$defense.'", maj=NOW() where clodo="'.$_SESSION['clodo'].'"'))
{
//Si ca a fonctionne, on ré-affiche le formulaire pour mettre à jour le tableau
$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 le clodo voulu est deja pris
// $form = true;
//$message = 'Un autre utilisateur utilise déjà le nom d\'utilisateur que vous désirez utiliser.';
}
}
}
//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 membre where clodo="'.$_SESSION['clodo'].'"'));
$att = htmlentities($dnn['att']);
$def = htmlentities($dnn['def']);
$habilite = htmlentities($dnn['habilite']);
$attaque = htmlentities($dnn['attaque']);
$defense = htmlentities($dnn['defense']);
}
[/php]
La date s'enregistre tres bien dans ma BDD
Le probleme c'est que maintenant j'ai voulu réutiliser la fonction NOW() dans une requete mais ca ne fonctionne pas, ca me met que NOW() n'est pas définie.
[php]<?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)) {
$date2 = new DateTime($row['MAJ']);
if(date_diff($date2,Now()) >= 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("");
echo $table;
?>[/php]
Merci de votre aide!