Problème d'UPDATE qui me bloque depuis hier soir! :/
- Accueil
- Forum
- Programmation
- PHP
- Problème d'UPDATE qui me bloque depuis hier soir! :/
Malib Le 22 avril 2016 à 13:00 (Édité le 25 janvier 2019 à 17:50)
voila le code:
<?php
if(isset($_SESSION['id']) AND !empty($_SESSION['id'])) /* permet de verifier si le membre est connecté ou non */
{
$idpopulation = intval($_SESSION['id']);
$reqpop = $bdd->prepare("SELECT * FROM population WHERE id = ? ");
$reqpop->execute(array($idpopulation));
$population = $reqpop->fetch();
$popucivil=$population['civil'];
$popuchercheur=$population['chercheur'];
$popusoldat=$population['soldat'];
$popuglobal=$popuchercheur+$popucivil+$popusoldat;
{
echo "Civil : " . $popucivil . " <br/>
chercheur : " . $population['chercheur'] . " <br/>
soldat : " . $popusoldat . " <br/>
global : " . $popuglobal .'<br />';
}
if(isset($_POST['valider_changement']));
{
if(isset($_POST['soldat']))
{
$popucivil=$popucivil-($_POST['soldat']);
$popusoldat=($_POST['soldat'])+$popusoldat;
var_dump($popusoldat);
/* requete qui n'est pas bonne*/
$up=$bdd->prepare('UPDATE population SET civil = $popucivil,soldat = $popusoldat WHERE id = ?');
var_dump($populationup);
var_dump($id);
echo "Civil : " . $popucivil . " <br/>
chercheur : " . $population['chercheur'] . " <br/>
soldat : " . $popusoldat . " <br/>
global : " . $popuglobal .'<br />';
}
}
?>
Donc a priori dans mon formulaire pour le moment j'ai bon, quand j'entre X soldats il sont bien retiré à la partie civil et ajouté. seul pépin c'est que c'est pas enregistré dans la BDD.
L'update ne se fait pas, j'ai essayé plusieurs façon de faire la requete mais sa ne fonctionne pas :/ j'en appel à vos connaissances!
merci d'avance
Wistaro Le 22 avril 2016 à 16:26 (Édité le 22 avril 2016 à 16:30)
Cette fonction ne peux pas s'utiliser seule, elle attend que tu lui passes les paramètres.
À la place utilise exec>() ou
Ou prepare->() puis execute->(array(tes paramètres))
Autrement regarde les logs php pour voir le(s) problème(s). Dans ton cas, c'est normal que ça ne génère aucune erreur. Éventuellement un warning, mais pas sûr.
Cf la doc: http://php.net/manual/fr/pdo.prepared-statements.php
Malib Le 22 avril 2016 à 17:21 (Édité le 1 janvier 1970 à 01:00)
Donc la pour eviter l'erreur sur ma page j'ai retiré le bout du code mais j'ai essayé vraiment beaucoup de choses en vain :/
Malib Le 22 avril 2016 à 18:28 (Édité le 1 janvier 1970 à 01:00)
if(isset ($_POST['soldat']) AND !empty($_POST['soldat']))
{
$popucivil=$popucivil-($_POST['soldat']);
$popusoldat=($_POST['soldat'])+$popusoldat;
$reqrecupcivil=$bdd->prepare('UPDATE population SET soldat = ?, civil= ? WHERE id = ?');
$reqrecupcivil->execute(array($_POST['soldat'],$popucivil,($_SESSION['id'])));
Donc sa fonctionne maintenant! Juste un petit problème.
Civil: 1000
soldat: 1000
chercheur:1000
Total: 3000
Si je met 500 soldat
j'aurais bien :
Civil: 500
soldat: 1500
Mais si derrière je fais ajouter 100 dans soldat j'aurais
Civil: 400
soldat: 600
Donc il doit y avoir quelque chose que j'ai oublié ^^ Sinon l'update dans la BDD est bon 😉
Malib Le 25 avril 2016 à 10:45 (Édité le 1 janvier 1970 à 01:00)