Code : Tout sélectionner
<?php
require("conf_gastro.php");
/*-----------------------------------------------------------------*/
/* AJOUT DANS MySQL */
/*-----------------------------------------------------------------*/
// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez
les paramètres du fichier conf_gastro.php"; exit;}
$requete=mysql_db_query($sql_bdd,"select * from membre_gastro",$db_link) or die(mysql_error());
// Insertion dans la table
if ($_SESSION['derniere_paie'] < $time_genere)
{
$diff = $time_genere - $_SESSION['time_genere'];
$nbrJourPaie = $diff / (24*60*60); //calcul du nombre de jour non-payés
$apayer1 = $nbrJourPaie * $serveur_sal * $serveur; //calcul de la paye
$apayer2 = $nbrJourPaie * $chef_rang_sal * $chef_rang; //calcul de la paye
$apayer_fini = $apayer1 + $apayer2; //fin du calcul
//mise à jour de la derniere paie et du nouvel argent !
$requete=mysql_db_query($sql_bdd,"UPDATE membre_gastro SET derniere_paie=time(), argent=$argent - $apayer_fini",$db_link);
}
// DECONNEXION MYSQL
mysql_close($db_link);
?>
D'accord, je vais essayer......merci !Bah dis nous peut être ce qui ne fonctionne pasAs-tu un message d'erreur ? (vire les "@" ils peuvent dissimuler certaines infos et te faire louper des messages)
A noter que si tu passes par un webcron, il n'y aura pas d'objet $_SESSION, donc le test n'est pas adapté. Enfin, je pense que tu dois pouvoir faire la mise à jour directement avec une requête UPDATE (bien réfléchie, certes, mais une seul) directement en base sans nécessiter de faire de SELECT ou de traitement php
Code : Tout sélectionner
<?php
// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez
les paramètres du fichier conf_gastro.php"; exit;}
$requete=mysql_db_query($sql_bdd,"select * from membre_gastro",$db_link) or die(mysql_error());
// Calcul des salaires
$new_serveur_sal = '$serveur * 30.00';// Nombre d'employé(s) x le salaire
$new_chef_rang_sal = '$chef_rang * 36.42';
$new_maitre_hotel_sal = '$maitre_hotel * 39.12';
$new_commis_sal = '$commis * 32.75';
$new_sommelier = '$sommelier * 34.88';
$new_argent = '$new_serveur_sal + $new_chef_rang_sal + $new_maitre_hotel_sal + $new_commis_sal + $new_sommelier_sal';
// DECONNEXION MYSQL
mysql_close($db_link);
?>Code : Tout sélectionner
<?php
// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez
les paramètres du fichier conf_gastro.php"; exit;}
$requete=mysql_db_query($sql_bdd,"select * from membre_gastro",$db_link) or die(mysql_error());
// Calcul des salaires
$new_serveur_sal = '$serveur * 30.00';// Nombre d'employé(s) x le salaire
$new_chef_rang_sal = '$chef_rang * 36.42';
$new_maitre_hotel_sal = '$maitre_hotel * 39.12';
$new_commis_sal = '$commis * 32.75';
$new_sommelier = '$sommelier * 34.88';
$new_argent = '$new_serveur_sal + $new_chef_rang_sal + $new_maitre_hotel_sal + $new_commis_sal + $new_sommelier_sal';
mysql_query("UPDATE membre_gastro SET argent='$new_argent'");
// DECONNEXION MYSQL
mysql_close($db_link);
?>
Par ailleurs, sors tes variables php des chaines, cela t'évitera de nombreuses erreurs, nottament parce que si une variable entre guillemets est interprétée, une variable entre apostrophe ne l'est pas.Bah dis nous peut être ce qui ne fonctionne pasAs-tu un message d'erreur ? (vire les "@" ils peuvent dissimuler certaines infos et te faire louper des messages)
Merci mais je ne voit pas d'accolade fermente donc je ne sais pas ou en mettre une ouvrante"Parse Error" signifie que tu as une erreur de syntaxe dans ton code, "unexpected '}'" signifie qu'il tombe sur une accolade fermante alors qu'il ne s'y attendait pas, c'est donc qu'il ne trouve pas l'accolade ouvrante correspondante. Vérifies que tes paires d'accolades sont toutes bien équilibrées
<?php
require("conf_gastro.php");
// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez
les paramètres du fichier conf_gastro.php"; exit;}
$requete=mysql_db_query($sql_bdd,"select * from membre_gastro",$db_link) or die(mysql_error());
// Fonction qui transforme un timestamp en nombre de jours
function getDay($timestamp) {
// On divise tout simplement les secondes pour obtenir des jours
$day = floor($timestamp/(60*60*24)); // 60 secondes = 1 min, 60 min = 1 h, 24 h = 1 jour
return ($day);
}
// On crée deux constantes contenant les salaires
define ('serveur_sal', 32);
define ('maitre_hotel_sal', 35);
// Le timestamp actuel
$actual = time();
/* Avec la manipulation que tu souhaite (lecture d'un fichier ou d'une base de donnée), tu récupère dans la variable $last le timestamp qui a été stocké */
// On convertit les secondes du timestamp en jours grâce à la fonction getDay()
$now = getDay($actual);
$before = getDay($last);
if ($now > $before) // Si le jour est supérieur à celui marqué dans le timestamp
// On actualise le timestamp et on calcule l'argent
/* Je te laisse actualiser de la manière que tu souhaite le fichier ou la base de donnée, sachant qu'il faut que le contenu du timestamp soit $actual */
{
$depenses = ($nombreServeurs * SERVER_PRICE) + ($nombreMaitres * MASTER_PRICE);
$news_argent - $depenses;
}
mysql_query("UPDATE membre_gastro SET argent=\"$new_argent\",derniere_paie=\"$actual\"") or die(mysql_error());
?>
Merci de vos réponse