Bdd+sql

Résolu
Zeus1973 Messages postés 59 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 15 août 2012 - 5 août 2012 à 21:37
Zeus1973 Messages postés 59 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 15 août 2012 - 15 août 2012 à 22:10
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

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
15 août 2012 à 20:46
Ce n'est pas du SQL. Le principe est, avec cron, de lancer un script qui va te faire ton update.
3
Zeus1973 Messages postés 59 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 15 août 2012
15 août 2012 à 22:10
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
3
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
13 août 2012 à 00:45
Salut,

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

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

Posez votre question
Zeus1973 Messages postés 59 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 15 août 2012
15 août 2012 à 19:44
et comment faire une tache cron ??? qui update chaque jour a une heur precise ????
Ne rester pas ignorant svp
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
15 août 2012 à 19:48
Regarde donc la page wikipedia de crontab.
0
Zeus1973 Messages postés 59 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 15 août 2012
15 août 2012 à 20:41
d'accord mais je ne vois pas comment le faire avec du SQL

Ne rester pas ignorant svp
0