Bonjour,
Voila je rencontre un petit problème avec mon code.
Je cherche à faire un système de remboursement pour un serveur de jeu, ou je vais via un formulaire, permettre d'injecter des valeurs dans la colone bankbalance de la BDD.
J'ai donc essayé de faire ça en 3 étapes.
Les voici :
Pour commencer, j'ai fait un fichier avec formulaire ou je demande de renseigner Nom et Prénom du joueur
<?php
include_once('config/bdd-connect.php');
?>
<?php
include_once('includes/header.php');
?>
<div class="container" style="margin-top:70px;">
<div class="alert alert-dismissible alert-warning">
<button type="button" class="close" data-dismiss="alert">×</button>
<h4><i class="mdi mdi-information"></i> Information</h4>
<p>Il se peut que des bugs soient encore présents, le panel de gestion est encore en phase de test. Merci de ne pas spam lors de l'ajout d'un nouveau joueur.</p>
</div><br>
<form class="form-horizontal" method="post" action="ct2-result.php">
<fieldset>
<legend>Rechercher le joueur à rembourser</legend>
<div class="form-group">
<label for="inputEmail" class="col-lg-2 control-label">Prénom du joueur</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="prenom" maxlength="21" placeholder="Saisir prénom du Joueur">
</div>
</div>
<div class="form-group">
<label for="inputEmail" class="col-lg-2 control-label">Nom du joueur</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="nom" maxlength="21" placeholder="Saisir nom du Joueur">
</div>
</div>
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2"><br>
<button type="submit" class="btn btn-primary"><i class="mdi mdi-magnify" name="rechercher"></i> Rechercher</button>
<button type="reset" class="btn btn-default"><i class="mdi mdi-cancel"></i> Annuler</button>
</div>
</div>
</fieldset>
</form>
</div>
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="boostrap.min.js"></script>
</body>
</html>
Puis, j'ai fait un second fichier vers lequel pointe le premier, que j'ai appelé "result.php" :
Ce code va afficher sous forme d'une ligne de tableau les infos bancaires du joueur. Jusque là tout va bien.
J'ai égament fait un autre formulaire sous le résultat sous forme de tableau, afin de saisir la valeur du virement à effectuer.
<?php
include_once('config/bdd-connect.php');
include_once('includes/header.php');
?>
<div class="container" style="margin-top:70px;">
<div class="alert alert-dismissible alert-warning">
<button type="button" class="close" data-dismiss="alert">×</button>
<h4><i class="mdi mdi-information"></i> Information</h4>
<p>Il se peut que des bugs soient encore présents, le panel de gestion est encore en phase de test. Merci de ne pas spam lors de l'ajout d'un nouveau joueur.</p>
</div><br>
<?php
?>
<!-- Affichage nom et prenom fetch -->
<?= "<h4>Voici les informations bancaires du joueur <b>" . $_POST['prenom'] . " " . $_POST['nom'] . "</h4>"; ?><br>
<table class="table table-striped table-hover ">
<thead>
<tr>
<th><i class="mdi mdi-coin"></i> Cash</th>
<th><i class="mdi mdi-cash-100"></i> Argent Sale</th>
<th><i class="mdi mdi-diamond"></i> Banque</th>
</tr>
</thead>
<tbody>
<?php
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$req = $bdd->prepare('SELECT money, dirtymoney, bankbalance FROM users WHERE prenom = ? AND nom = ?');
$req->execute(array(
$_POST['prenom'],
$_POST['nom']
));
echo '<tr>';
while ($donnees = $req->fetch())
{
?>
<td><?= $donnees['money'] ?></td>
<td><?= $donnees['dirtymoney'] ?></td>
<td><?= $donnees['bankbalance'] ?></td>
<?php
}
echo '</tr>';
$req->closeCursor();
?>
</tbody>
</table> <br>
<form class="form-horizontal" method="post" action="ct2-done.php">
<fieldset>
<legend>Rembourser le joueur</legend>
<div class="form-group">
<label for="inputEmail" class="col-lg-2 control-label">Prénom du joueur</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="prenom2" maxlength="21" placeholder="Saisir prénom du joueur" value="<?= $prenom;?>">
</div>
</div>
<div class="form-group">
<label for="inputEmail" class="col-lg-2 control-label">Nom du joueur</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="nom2" maxlength="21" placeholder="Saisir nom du joueur" value="<?= $nom;?>">
</div>
</div>
<div class="form-group">
<label for="inputEmail" class="col-lg-2 control-label">Somme à transférer</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="virement" maxlength="6" placeholder="Saisir somme à virer sur le compte en banque du joueur">
</div>
</div>
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2"><br>
<button type="submit" class="btn btn-primary"><i class="mdi mdi-magnify" name="rembourser"></i> Virer argent</button>
<button type="reset" class="btn btn-default"><i class="mdi mdi-cancel"></i> Annuler</button>
</div>
</div>
</fieldset>
</form>
</div>
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="boostrap.min.js"></script>
</body>
</html>
Puis, pour ensuite rembourser, j'ai décidé de faire un troisième fichier, que voici :
<?php
include_once('config/bdd-connect.php');
include_once('includes/header.php');
?>
<div class="container" style="margin-top:70px;">
<?php
$req = $bdd->prepare('UPDATE users SET bankbalance = bankbalance + :virement WHERE prenom = :prenom AND nom = :nom');
$req->execute(array(
$_POST['virement'],
$_POST['prenom2'],
$_POST['nom2']
));
echo "<div class=\"alert alert-dismissible alert-success\">
<button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button>
<h4><i class=\"mdi mdi-checkbox-marked-circle-outline\"></i> Information</h4>
<p>Virement effectué avec succès.</p>
</div><br>";
?>
</div>
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="boostrap.min.js"></script>
</body>
</html>
Mon problème est qu'une fois les requêtes effectuées, je suis rediriger vers le 3ème fichier sans soucis, mais arrivé au troisième fichier..
Je cherche à faire fonctionner ma equête permettant d'injecter dans ma colone "bankbalance" la valeur du virement, saisie au préalable via le formulaire du second fichier.
J'obtiens donc une erreur que je n'arrive pas à fixer, la voici :
Merci d'avance à ceux qui pourraient m'aider ;)
Salut,
Ta requête préparée est un peu "mélangée" (dans la façon de la construire).
$req = $bdd->prepare('UPDATE users SET bankbalance = bankbalance + :virement WHERE prenom = :prenom AND nom = :nom');
$req->execute(array(
$_POST['virement'],
$_POST['prenom2'],
$_POST['nom2']
));
Avec une fonction prepare
,
soit tu mets des points d'interrogations dans la "requête", ET tu laisse le "execute" comme tu l'as fait,
soit tu laisse la "requête" comme tu l'as fait, ET tu change le "execute" pour avoir : "virement" => $_POST['virement'], etc
Merci beaucoup !
Encore une fois une erreur conne, je te remercie tout fonctionne comme je le voulais ;)
Il faut que je me repenche sur la syntaxe des requêtes préparées aussi pour pas refaire ça...
Merci ;)