Bdd+sql [Résolu]

Signaler
Messages postés
59
Date d'inscription
vendredi 19 janvier 2007
Statut
Membre
Dernière intervention
15 août 2012
-
Messages postés
59
Date d'inscription
vendredi 19 janvier 2007
Statut
Membre
Dernière intervention
15 août 2012
-
bonjour

voilà, je voudrai faire un update sur une table tout les jour a une certaine heure en auto
j'ai essayé ceci http://atranchant.developpez.com/mysql/evenement/#L200 ça marche sur la base d'exemple donnée mais pas avec le mien.
j'ai une table avec 3 colonne j'aimerai soustraire dans 2 colonnes et la différence l’insérer dans la 3ieme colonne automatiquement tout les jour a 1h par exemple
une idée, un code d'exemple svp

Ne rester pas ignorant svp

7 réponses

Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Ce n'est pas du SQL. Le principe est, avec cron, de lancer un script qui va te faire ton update.
Messages postés
59
Date d'inscription
vendredi 19 janvier 2007
Statut
Membre
Dernière intervention
15 août 2012

voilà a quoi j'ai pensé car le cron vu mon niveau je ne pense pas etre capable de le realiser

$sqlcurrentDate=mysql_query("select current_date from planningcarte")or die ('ERREUR '.mysql_error());  
$datejour=mysql_result($sqlcurrentDate,0);
echo $datejour;    // Je selectionne la date du jour


$sqlcalcul=mysql_query("select enddate,datecalcul,montant,caisse,montjour,datediff(current_date,datecalcul)*montjour as diffdate from planningcarte")or die ('ERREUR '.mysql_error());  // je selectionne toute mes colonnes et je fait la difference de jour entre deux colonne * par la somme qui se trouve dans la colonne montjour

$nblignes = mysql_num_rows($sqlcalcul);
if($nblignes)
{
// début du tableau
echo ''.\"\n\";

echo '----
';
echo 'enddate, ';
echo 'date du jour, ';
echo 'montant, ';
echo 'datecalcul, ';
echo 'diffdate, ';
echo 'caisse, ';
echo 'montjour, ';

echo ''.\"\n\";
while($row = mysql_fetch_array($sqlcalcul))
{
if($datejour<$row['enddate'])// il verifit chaque ligne si la date du jour est inferieur a la date de fin
{
echo '----
';
echo ''.$row['enddate'].', ';

echo ''.$row['datecalcul'].', ';
echo ''.$row['montant'].', ';
echo ''.$row['datecalcul'].', ';
echo ''.$row['diffdate'].', ';
$datediff=$row['diffdate'];// recupere la difference entre deux date * par la somme qui se trouve dans la colonne montjour a chaque boucle dans une variable
echo ''.$row['caisse'].', ';
echo ''.$row['montjour'].', ';

if ($row['datecalcul']<>$datejour)// il verifit si la date de calcule est different de la date du jour
{

$sql=mysql_query(\"update clients,planningcarte set caisse='$datediff+caisse' ,montant='montant-$datediff' where clients.id_client=planningcarte.id_client\")or die ('ERREUR '.mysql_error());  // ICI se trouve le probleme enfin je crois, je dois faire la difference d'une colonne et l'addition d'une autre avec ma variable \"$datediff\" j'ai 4 ligne dans ma base du coup il boucle 4 fois et soustrait et additionne 4 fois au lieu de le faire une et une seule fois
}
} else{
echo ''.$row['enddate'].'est en retard ! un Email lui a et envoye !, ';
echo ''.\"\n\";
}

}
echo '
'."\n";
$sql=mysql_query("update planningcarte set datecalcul='$datejour'")or die ('ERREUR '.mysql_error());  // on insère la date du jour(current_date)
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

// on libère le résultat
mysql_free_result($result);


voilà j'espere avoir ete le plus clair possible a defaut de faire un cron le temps de m'ameliorer cici fera l'affaire car il ne ferra rien tant que les date seront identique "deuxieme if"

pouvez vous me dire le pourquoi il insère 4 fois et fait donc 4 fois le calcul MERCI


Ne rester pas ignorant svp
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

Fais donc une tâche cron.
Messages postés
403
Date d'inscription
dimanche 12 août 2001
Statut
Membre
Dernière intervention
3 septembre 2012
2
Tu as quoi comme erreur quand tu excécutes les commandes lignes à lignes en sql?
Messages postés
59
Date d'inscription
vendredi 19 janvier 2007
Statut
Membre
Dernière intervention
15 août 2012

et comment faire une tache cron ??? qui update chaque jour a une heur precise ????
Ne rester pas ignorant svp
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Regarde donc la page wikipedia de crontab.
Messages postés
59
Date d'inscription
vendredi 19 janvier 2007
Statut
Membre
Dernière intervention
15 août 2012

d'accord mais je ne vois pas comment le faire avec du SQL

Ne rester pas ignorant svp