28-03-2017, 01:40 AM
(Modification du message : 28-03-2017, 01:41 AM par MeTaLLiQuE.)
Je n'ai jamais fait de procédure stockée. Je regarderai de ce côté voir. Et j'attends avec impatience alors (:
Concernant le INSERT INTO ON DUPLICATE KEY UPDATE, je ne connais pas l'ID (la clé primaire) car je voulais l'appliquer sur un RAND
En gros, à la version gros porc, ça donnerai :
Concernant le INSERT INTO ON DUPLICATE KEY UPDATE, je ne connais pas l'ID (la clé primaire) car je voulais l'appliquer sur un RAND
En gros, à la version gros porc, ça donnerai :
<?php
foreach($popList as $population => $habitation)
{
$reqConso = $bdd->prepare("SELECT * FROM consommations_population WHERE type=?");
$reqConso->execute(array($population));
$donConso = $reqConso->fetch();
foreach($consoPop as $consommation => $niveauRequis)
{
if($donUsers['evolution'] >= $niveauRequis)
{
// La consommation totale que doit consommer vos populations
$consoTotale = $donPop[$population]*$donConso[$consommation];
if($donRess[$consommation] >= $consoTotale)
{
// On rajoute 20% de moral à la troupe
$reqUpdateMoral = $bdd->prepare("UPDATE population SET moral=moral+20 WHERE id_user= :id_user AND categorie= :categorie");
$reqUpdateMoral->bindValue(':id_user', $_SESSION['id'], PDO::PARAM_INT);
$reqUpdateMoral->bindValue(':categorie', $population, PDO::PARAM_STR);
$reqUpdateMoral->execute();
} else {
// Combien n'ont-il pas été nourris ?
$notNourris = floor($donRess[$consommation]*$donPop[$population]/$consoTotale);
// On sélectionne x troupe
$reqSelectTroupe = $bdd->prepare("SELECT id FROM population WHERE id_user= :id_user AND categorie= :categorie ORDER BY RAND() LIMIT :limit");
$reqSelectTroupe->bindValue(':id_user', $_SESSION['id'], PDO::PARAM_INT);
$reqSelectTroupe->bindValue(':categorie', $population, PDO::PARAM_INT);
$reqSelectTroupe->bindValue(':limit', $notNourris, PDO::PARAM_INT);
$reqSelectTroupe->execute();
while($donSelectTroupe = $reqSelectTroupe->fetch())
{
// On enlève 20% de moral à la troupe
$reqUpdateMoral = $bdd->prepare("UPDATE population SET moral=moral-20 WHERE id= :id");
$reqUpdateMoral->bindValue(':id', $donSelectTroupe['id'], PDO::PARAM_INT);
$reqUpdateMoral->execute();
}
}
}
}
}
?>