JeuWeb - Crée ton jeu par navigateur
Systeme d'achat - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Systeme d'achat (/showthread.php?tid=1974)



Systeme d'achat - teddy10 - 06-11-2007

Bonjour,Je m'appelle teddy (comme teddy l'ourson ^^)J'ai 17 ans,je vie a Paris (oué dans ma ville il pleut tt le temps xD ^^)
Bref,
Je souhaiterai si un ou l'une ^^ d'entre vous pourez m'aider a créer une séction achat ou m'expliquer a en creer une ^^
Le but
L'achat de 3 train different,donc on enregistrera 3 entré sur la même bdd que celle des membres.
On rajoutera donc 3 entré (pour les 3 trains)
train1
train2
et
train3
Il faudra mettre l'id,le nom du train et le nombre d'employé qu'il consomme.
Et aussi 1Tone de rail=3 train sa veut dire que avec 1 tone de rail vous pouvez
achetez 3 trains max si vous en voulez + de train il va faloir acheté 1 tone de rail en +
Et voila ou le problême commence je ne sait pas trop codé sa j'ai finit la partie html mais php...
j'ai débuté en php il ya 1 mois ^^

Jvais vous faire une sorte de dessin texte ^^:

Achat train 1:
<image du train>
<valider=Ceux qui entrainera sur une autre page codé en php>
<p></p>
Achat train 2:
<image du train>
<valider=Ceux qui entrainera sur une autre page codé en php>
<p></p>
Achat train 3:
<image du train>
<valider=Ceux qui entrainera sur une autre page codé en php>

J'ai créer une table mais elle se rajoute pas je vois pas ou est le bug :
Citation : CREATE TABLE `train`.`membres_ressources` (
`id1` INT NOT NULL AUTO_INCREMENT ,
`train1` TEXT NOT NULL ,
`prix` TEXT NOT NULL ,
`id2` INT NOT NULL AUTO_INCREMENT ,
`train2` TEXT NOT NULL ,
`prix` TEXT NOT NULL ,
`id3` INT NOT NULL AUTO_INCREMENT ,
`train3` TEXT NOT NULL ,
`prix` TEXT NOT NULL ,
`tone_rail` TEXT NOT NULL ,
`prix` TEXT NOT NULL
) ENGINE = InnoDB



RE: Systeme d'achat - Kassak - 06-11-2007

Oula ta table n'est pas bonne du tout^^

Tu as juste a creer 3 champs : id, id_train et prix.
Apres tu auras dans ces champs par exemple :

-id 1, id_train 5, prix 4
-id 48, id_train 158, prix 12

Sinon tu imagines si tu fais 3 champs par train, et si tu as 100 trains a al fin?

Après je vais bien relire ton post pour pouvoir t'aider la j'ai pas trop eu le temps Wink


RE: Systeme d'achat - teddy10 - 06-11-2007

En faite ya 3 sortes de train
Mais imaginos que un jour A achéte 1 train son ID est 487 et imaginons que B achete 1 train (le même) a 10 secondes apres A l'ID du joueur B sa sera 488
Tu comprends?


RE: Systeme d'achat - teddy10 - 06-11-2007

CREATE TABLE `train`.`train1` (
`id_train` INT( 9 ) NOT NULL AUTO_INCREMENT ,
`pseudo` TEXT NOT NULL ,
`prix` INT( 9 ) NOT NULL
) ENGINE = InnoDB

Je vois pas le bug pouvez vous m'aider ^^


RE: Systeme d'achat - Kassak - 06-11-2007

S'il y a trois sortes de train, tu rajoute un champ type dans ta table train, mais tu ne fais en aucun trois tables pour des trains differents ( sauf si il y a vraiment beaucoup de difference entre les trois trains, et que ce n'est pas possible de gerer tout dans une même table )

Mais pour le moment, rajoute un champ type_train par exemple :

CREATE TABLE `train` (
`id_train` INT( 9 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`pseudo` VARCHAR( 40 ) NOT NULL ,
`prix` INT( 11 ) NOT NULL ,
`type_train` VARCHAR( 40 ) NOT NULL
) ENGINE = MYISAM ;

Et par exemple il pourra y avoir dedant :

id_train 1, pseudo KassaK, prix 480, type_train Locomotive_vapeur
id_train 58, pseudo teddy10, prix 208, type_train TGV

etc...

Ensuite pour ce que tu veux faire, va faire un tour du coté des formulaires sur le site du zero, tu devrais arriver a le faire seul, c'est pas bien compliqué


RE: Systeme d'achat - teddy10 - 06-11-2007

Jai rajouté la table elle a marché merci je vais commencé a coder la partie achat
Est ce que le mieu est de par exemple pr acheter le train n°1 faire une redirectione xemple:
Page achat.html:
Citation :<form method="post" action="achat1.php">
<image du train>
<input type="submit" value="Acheter" name="submit">
<p></p>
et page achat1.php:
Citation :<?php
mysql_connect("localhost", "root", "");
mysql_select_db("train");

if($argent > 100000){
$reponse = mysql_query("entré ici sa requétte');
echo "Bravo vous venez d/'acheter un train."
else "Vous n'avez pas assez d'argent"
$_SESSION['username'] = $_POST['username'];
?>

Ou est ce qu'il a un meilleur moyent?


RE: Systeme d'achat - Kassak - 06-11-2007

Ben tu peux le faire sur la même page, ou sur une autre, moi quand le traitement du formulaire ne fais pas beaucoup de ligne, je le met sur la même page, par contre va revoir les cours de php, la c'est pas encore ça :

Si tu ouvres un ", tu dois le fermer avec un ".

Le if s'ouvre avec une accolade {, et se ferme avec une accolade }, le else pareil ( encore que c'est pas obligé mais c'est mieux )

Quand tu met une apostrophe dans un echo par exemple, il ne faut pas mettre / avant mais \ ( Alt gr + touche 8 )

Ta variable $argent, tu la trouve comment? c'est l'argent du joueur? si oui fait une requete avant qui le recupere.
Et il y a bien un champ prix dans ta table, la il ne sert a rien.
Dans ton formulaire, envoie en hidden l'id du train que le joueur veut acheter, ensuite dans ton traitement, fait un select dans la table train ou l'id = l'id envoyé, et tu recuperes le prix.

Et ensuite au lieu de mettre : $argent > 100000, tu mets un truc du genre $argent > $prix_train

Sinon je te conseille de revoir tous les cours de php, la il y a plein d'erreur que tu ne devrais pas faire, et tu codes avec quoi? Je te conseille aussi de recuperer notepad++, avec cet editeur de code, tu verras dessuite s'il y a une erreur suivant la couleur du code Wink


RE: Systeme d'achat - teddy10 - 06-11-2007

Quelle requete dois je mettre exactement ?
Pour ajouter un train dans le compte du joueur?


RE: Systeme d'achat - grouik5962 - 09-11-2007

Bonjour teddy10,

A priori il reste quelque zone d'ombre dans la page et le script que tu veux faire. Je pense que tu devrais avoir un schema exact de tes tables avant de commencer (si c'est le cas hésite pas à poster la dernière version).
Et avant de coder (outre les conseils de maitriser le PHP et MySQL), fait du pseudo code, exprime ton script en français et ensuite si il te semble cohérent commence à le coder mais pas avant d'avoir quelque chose de potable.

Sinon perso, pour l'achat du train je fais toujours un script en dehors de la page. Pas sur que ce soit le mieux mais c'est ma méthode :-)

Pour tes tables, j'aurais surement fait un truc du genre

TRAIN_TYPE [permet de sauvegarder les différents type de train]
- idTypeTrain
- libelle
- puissanceLoco
- nbPlace
- nbEmploye
- imgTrain
- prix

Donc dans ton marché tu peux avoir différents types de train : un TGV de 10.000cv, 220 places, 3 employés nécessaires pourra être codé en base
insert into TRAIN_TYPE (idTypeTrain, libelle, puissanceLoco, nbPlace, nbEmploye, prix, imgTrain) values (1, 'TGV', 10000, 220, 3, 125000, 'tgv.jpg');
insert into TRAIN_TYPE (idTypeTrain, libelle, puissanceLoco, nbPlace, nbEmploye, prix, imgTrain) values (2, 'Corail', 7250, 65, 2, 55000, 'corail.jpg');

Maintenant, il faut une table avec les trains dispos dans ton marché
TRAIN_MARCHE
- idTrain
- idTypeTrain
- typeMaj
- dateSupp

Tu vois ici pas de prix, si tous tes TGV ont le même prix, il suffira de récupérer le prix par rapport au type de train
Cette table doit contenir un nombre X de trains que tu définiras.
Lorsque le joueur choisi un train, tu arrives sur ton script, récupération de l'argent du joueur, et de l'information du train. Tu passe le typeMaj à O grâce à une requete du gente UPDATE TRAIN_MARCHE set typeMaj = 'O' where typeMaj = 'N'. Ca evite que 2 joueurs achètent le même train en même temps. Si la requête précédente renvoi 0 ligne updatée alors message erreur pour dire que le train vient d'être acheté par quelqu'un d'autre.
Test argent, ... et compagnie ensuite suppression de la ligne dans TRAIN_MARCHE et insertion dans les trains du joueur

Table TRAIN_JOUEUR
idJoueur
idTrain
typeTrain
dateAchat

Voili voilà en gros, ca te plait, des questions, des interrogations ??

A+