Jump to content
×
×
  • Create New...
  • 0

Petit problème avec la boutique


Sangokudufeu
 Share

Question

Bonjour à tous

 

j'ai un petit problème avec mon cms

 

Emulateur : ManghaoEMu

Domaine (Base de données, Core, etc.) : mysql ect...

Votre niveau (débutant, intermédiaire, avancé) : moyens

 

J'ai un petit problème quand on acheter en boutique des items on les reçois en double qui pourrait me dire d'ou viens le problème s'il vous plait Merci

 

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le règlement des demandes d'aides.

Link to comment
Share on other sites

  • Answers 15
  • Created
  • Last Reply

Top Posters For This Question

15 answers to this question

Recommended Posts

  • 0

Voila Nicky :

Boutique d'<?php echo $serveur ?>

Achat d'un item :

<?php if(empty($_GET['id'])) { echo"Cette page n'est pas accessible de cette façon.Merci de l'utiliser d'un autre moyen."; echo ''; } else { if((isset($_GET['id'])) && (is_numeric($_GET['id']))){ ?> <?php $req = $connect->prepare('SELECT * FROM boutique WHERE id = ?'); $req->execute(array($_GET['id'])); while ($donnees = $req->fetch()) { $nom = htmlentities($donnees['name']); $cout = htmlentities($donnees['cout']); $level = htmlentities($donnees['Level']); $stats = htmlentities($donnees['stats']); $ID = htmlentities($donnees['ID']); $idItem = htmlentities($donnees['idItem']); ?>

Vous êtes sur le point de commander : <?php echo htmlspecialchars($donnees['name']); ?> pour <?php echo htmlspecialchars($donnees['cout']); ?> points

Vérifiez que vous êtes bien connecté en jeu avant d'acheter l'item suivant.

Apparence Caracteristiques Level Prix
<?php echo $nom ?>
<?php echo $nom ?> <?php echo $stats ?>

<?php echo $level ?> <?php echo $cout ?>points
Mauvais choix? Retour a la boutique !

 

<?php $reqq = $connect->prepare('SELECT * FROM personnages WHERE account = ?'); $reqq->execute(array(GetUserInfos("guid", $connect))); $counting = $reqq->rowCount(); if ($counting != null) { ?>

Pour recevoir votre objet, choisissez sur quel personnage vous voulez le recevoir :

Choisissez un personnage sur votre compte: <?php $reqq2 = $connect->prepare('SELECT * FROM personnages WHERE account = ?'); $reqq2->execute(array(GetUserInfos("guid", $connect))); while ($donnees4 = $reqq2->fetch()) { ?> <?php echo $donnees4['name']; ?> <?php } echo '
'; ?> <?php if (isset($_POST['achatok'])) { $personnage_select = $_POST['personnage']; $reqq3 = $connect->prepare('SELECT * FROM accounts WHERE guid = ?'); $reqq3->execute(array(GetUserInfos("guid", $connect))); while ($donnees3 = $reqq3->fetch()) { if ($donnees['cout'] <= $donnees3['points']) { $req = $connect->prepare('SELECT guid FROM personnages WHERE name = ?'); $req->execute(array($_POST['personnage'])); $give = $req->fetch(); $insertion = $connect->prepare("INSERT INTO live_action VALUES('', '".$personnage_select."', '21', '".$donnees['idItem']."')"); $insertion->execute(array($give['guid'], $donnees['idItem'])); $retrait = $connect->prepare("UPDATE accounts SET points = points - ? WHERE guid = '".GetUserInfos("guid", $connect)."' "); $retrait->execute(array($donnees['cout'])); $points = GetUserInfos("points", $connect); $new_points = $points - $donnees['cout']; echo "
Votre achat s'est bien déroulé et est enregistré sur notre serveur pour éviter les fraudes

Faites une impression écran de ce récapitulatif :

Personnage : ".$give['name'].";

Item : ".$donnees['name'].";

Vos points : ".$new_points." cash.png
"; echo'Redirection dans 10 secondes!'; echo ''; } else { echo '
attention.png Vous n\'avez pas asser de points..
load.gif Redirection automatique dans quelques secondes.
'; echo ''; } } } } else { echo '
attention.png Vous n\'avez pas de personnage sur ce compte.
'; } } }elseif(empty($_GET['id'])){ echo"Pas de news avec cet ID"; } else{ echo"Rien";} } ?>
Link to comment
Share on other sites

  • 0
  • Retraité

Je ne pense pas que ça vienne de là mais la requête m'a l'air assez foireuse, on sait jamais :

Remplace

$insertion = $connect->prepare("INSERT INTO live_action VALUES('', '".$personnage_select."', '21', '".$donnees['idItem']."')");
$insertion->execute(array($give['guid'], $donnees['idItem']));

par

$insertion = $connect->prepare("INSERT INTO live_action VALUES('', ?, '21', ?)");
$insertion->execute(array($give['guid'], $donnees['idItem']));

 

Vérifie par ailleurs que la colonne quantite de ta table lives_action à bien une valeur par défaut de 1. (Ctrl+D affiche structure table si navicat)

Dans le cas contraire, met la à 1.

Sinon es-tu bien sûr que la ligne apparaît en double ?

Link to comment
Share on other sites

  • 0

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'PlayerID' cannot be null' in /home/undereex/public_html/pages/achat_boutique.php:119 Stack trace: #0 /home/undereex/public_html/pages/achat_boutique.php(119): PDOStatement->execute(Array) #1 /home/undereex/public_html/index.php(59): include('/home/undereex/...') #2 {main} thrown in /home/undereex/public_html/pages/achat_boutique.php on line 119

Link to comment
Share on other sites

  • 0
  • Retraité

Et tu as regardé la valeur par défaut de la colonne quantite ?

Difficile de t'aider s'il faut se répéter 3 fois pour que tu répondes ^^

 

Re-remplace les deux lignes que je t'ai dit par :

$insertion = $connect->prepare('INSERT INTO live_action(PlayerID,Action,Nombre) VALUES(?,21,?)');
$insertion -> bindvalue(1, intval($_POST['personnage']));
$insertion -> bindValue(2, $donnees['idItem']);
$insertion -> execute();

 

Quel est ton CMS ? Il m'a l'air fait un peu à l'arrache.

Link to comment
Share on other sites

  • 0
  • Retraité

Et tu as regardé la valeur par défaut de la colonne quantite ?

Difficile de t'aider s'il faut se répéter 3 fois pour que tu répondes ^^

 

Re-remplace les deux lignes que je t'ai dit par :

$insertion = $connect->prepare('INSERT INTO live_action(PlayerID,Action,Nombre) VALUES(?,21,?)');
$insertion -> bindvalue(1, intval($_POST['personnage']));
$insertion -> bindValue(2, $donnees['idItem']);
$insertion -> execute();

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share



Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.