Si la date ne correspond pas on update [Résolu]

Signaler
Messages postés
116
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
22 septembre 2005
-
Messages postés
116
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
22 septembre 2005
-
Salut a tous,
je voudrais mettre a jour ma table avec comme requete :

Si la date du jour ne correspond pas a la date dans la table,
on met à jour la table et la date.

Et si la date correspond a la date dans la table,
on ne met pas a jour la table

Voici la requete que je fé mais cela ne fonctionne pas:
<?php
// Parametres de connexion à la base de données
include "includes/acces.php";
include "includes/functions.inc.php";


$date = date("Y-m-d");



@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter à la base de données.");
//la requete
$rs=mysql_query("SELECT * FROM table WHERE id='".$_SESSION["membreid"]."'");


$r=mysql_fetch_array($rs);


if(intval($date) <> intval( "". $rs['date'] .""))
{
$requete = "Update table SET nb=3 , date='$date' ".
" WHERE id='".$_SESSION["membreid"]."'";

$result = @mysql_query($requete);
if (!$result) {
echo "Une erreur vient d'être détecté,".
"
".
"signaler le bug".
"
".
"Merci de recommencez ou d' essayez plus tard. ;-)
";
} else {
}
} else {
}
?>

Voila si quelqu'un pouvait m'aider.

7 réponses

Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Bonsoir,

tu peux faire :

mysql_query('Update table SET nb=3 , date!="' . date('d/m/Y') . '" WHERE id="' . $_SESSION['membreid'] . '" ') or die('Erreur : ' . mysql_error());

<hr size="2" width="100%">
Si ma reponse te convient, merci de l'accepter !
Messages postés
116
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
22 septembre 2005

Je viens de trouver une alternative en passant par une requete mysql donc voici se que vient de refaire :

<?php
// Parametres de connexion à la base de données
include "includes/acces.php";
include "includes/functions.inc.php";
@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter à la base de données.");

$date = date("Y/m/d");
// ici on fait la requete
$requete = "select * from table".
" WHERE date = '$date' and id='".$_SESSION["membreid"]."'";


$result= @mysql_query($requete);
//si ya un resultat a la requete
if (mysql_fetch_object($result)){
// ici mettre le refus pour update
} else{

// update la visite du jour meme $requete "UPDATE table SET date '$date', nb=3 ".
" WHERE id='".$_SESSION["membreid"]."'";

$result= @mysql_query($requete);
if (!$result) {
}else{
//Mettre ici vos données on été mise à jour


}
}
?>
Messages postés
116
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
22 septembre 2005

merci pour ta reponse mais on a poster quasi en meme temps que pense tu de mon code ??

merci de ta réponse cordialement magicjim
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Re,
Tu peux optimiser ton code ...

<!--StartFragment --><?php
// Parametres de connexion à la base de données
include 'includes/acces.php';
include 'includes/functions.inc.php';
@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse) or die('Impossible de se connecter au serveur de bases de données.');
@mysql_select_db($BD_base) or die('Impossible de se connecter à la base de données.');

$date = date('Y/m/d');
// ici on fait la requete
$requete = 'select * from table WHERE date="' . $date . '" and id="' . $_SESSION['membreid'] . '"';

$result= @mysql_query($requete);
//si ya un resultat a la requete
if (mysql_num_rows($result) < 1){
// update la visite du jour meme $requete 'UPDATE table SET date "' . $date . '", nb=3 WHERE id="' . $_SESSION['membreid'] . '"';
$result= @mysql_query($requete);
if (!$result) {

} else {
//Mettre ici vos données on été mise à jour
}
} else {
// ici mettre le refus pour update

}
?>


<HR width="100%" SIZE=2>
Si ma reponse te convient, merci de l'accepter !
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,



le select * ne sert a rien. Il ne sert jamais a rien de toutes facons lol.

Il faut eviter de s'en servir, et toujours nommer les champs dont on a besoin.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



de plus, on n'utilise pas mysql_pconnect() qui est plus gourmande en
ressources systèmes et généralement bannie par les hébergeurs
mutualisés mais mysql_connect() (tu risques d'avoir des
max_users_connections)...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
116
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
22 septembre 2005

oki je prend note de vaut remarque et encore merci pour votre aide