Si la date ne correspond pas on update

Résolu
magicjim Messages postés 116 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 septembre 2005 - 31 mars 2005 à 20:30
magicjim Messages postés 116 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 septembre 2005 - 1 avril 2005 à 21:00
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

JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
31 mars 2005 à 21:21
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 !
3
magicjim Messages postés 116 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 septembre 2005
31 mars 2005 à 21:22
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


}
}
?>
0
magicjim Messages postés 116 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 septembre 2005
31 mars 2005 à 21:25
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
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
31 mars 2005 à 21:31
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 avril 2005 à 09:28
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.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 avril 2005 à 18:30
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>
0
magicjim Messages postés 116 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 septembre 2005
1 avril 2005 à 21:00
oki je prend note de vaut remarque et encore merci pour votre aide
0
Rejoignez-nous