Page 1 sur 2

comptage

Posté : 21 août 2005, 16:51
par Le-Tinois
Bonjour je suis désolé d'encore vous déranger mais voila
j'ai un script qui gére les achat que fait l'utilisateur mais ce que j'aimerais c'est qu'il ne lui soit pas possible d'acheter quand il n'as PAS d'argent ou lorsqu'il n'en A PAS ASSEZ

pour sa j'ai choisi la solution d'écrire dans un fichiers plutot que dans une base
je vous met le code bien qu'il soit long
code:
<?php require_once('../check.inc.php'); ?>
<?
$marche = '../marche.php';

if (isset($_POST['avoine']) AND isset($_POST['foin'])AND isset($_POST['granule'])AND isset($_POST['barre'])AND isset($_POST['etrille'])AND isset($_POST['bouchon'])AND isset($_POST['douce'])AND isset($_POST['cure_pied'])AND isset($_POST['peigne'])AND isset($_POST['eponge'])AND isset($_POST['couteau_chaleur'])AND isset($_POST['dressage'])AND isset($_POST['mixte'])AND isset($_POST['filet'])AND isset($_POST['mord'])AND isset($_POST['martinguale'])AND isset($_POST['croupiere']))
       {
           mysql_connect("localhost", "root", "");
        mysql_select_db("horseland");
    
    // 1 : on ouvre le fichier
    $monfichier = fopen("argent.txt", "r+");
    // 2 : on lit la première ligne du fichier
    $ligne = fgets($monfichier);
    
      $monfichier = fopen('argent.txt', 'r+');

     $pages_vues1 = fgets($monfichier); // On lit la première ligne (nombre de pages vues)
     $pages_vues = $pages_vues1 - (10*$_POST['avoine']);
     $pages_vues = $pages_vues1 - (5*$_POST['foin']);
     $pages_vues = $pages_vues1 - (5*$_POST['granule']);
     $pages_vues = $pages_vues1 - (10*$_POST['barre']);
     $pages_vues = $pages_vues1 - (5*$_POST['etrille']);
     $pages_vues = $pages_vues1 - (5*$_POST['bouchon']);
     $pages_vues = $pages_vues1 - (5*$_POST['douce']);
     $pages_vues = $pages_vues1 - (5*$_POST['cure_pied']);
     $pages_vues = $pages_vues1 - (10*$_POST['peigne']);
     $pages_vues = $pages_vues1 - (5*$_POST['eponge']);
     $pages_vues = $pages_vues1 - (5*$_POST['couteau_chaleur']);
     $pages_vues = $pages_vues1 - (1000*$_POST['dressage']);
     $pages_vues = $pages_vues1 - (300*$_POST['mixte']);
     $pages_vues = $pages_vues1 - (300*$_POST['mord']);
     $pages_vues = $pages_vues1 - (800*$_POST['martinguale']);
     $pages_vues = $pages_vues1 - (800*$_POST['croupiere']);
     fseek($monfichier, 0);
     fputs($monfichier, $pages_vues);
     fclose($monfichier);

        if ($ligne<=0 AND $ligne >= $pages_vues)
           {
           header("Refresh: 5; URL=$marche");
           echo "Erreur vous ne possedez pas la Somme nécessaire";
           }
           
        else
           {
            $avoine = htmlentities ($_POST['avoine']);
            $foin = htmlentities ($_POST['foin']);
            $granule = htmlentities ($_POST['granule']);
            $barre = htmlentities ($_POST['barre']);
            $etrille = htmlentities ($_POST['etrille']);
            $bouchon = htmlentities ($_POST['bouchon']);
              $douce = htmlentities ($_POST['douce']);
        $cure_pied = htmlentities ($_POST['cure_pied']);
            $peigne = htmlentities ($_POST['peigne']);
            $eponge = htmlentities ($_POST['eponge']);
            $couteau_chaleur = htmlentities ($_POST['couteau_chaleur']);
            $dressage = htmlentities ($_POST['dressage']);
            $mixte = htmlentities ($_POST['mixte']);
            $filet = htmlentities ($_POST['filet']);
            $mord = htmlentities ($_POST['mord']);
            $martinguale = htmlentities ($_POST['martinguale']);
            $croupiere = htmlentities ($_POST['croupiere']);
        
            mysql_query("INSERT INTO letinois VALUES('', '" . time() . "', '$avoine', '$foin', '$granule', '$barre', '$etrille', '$bouchon', '$douce', '$cure_pied', '$peigne', '$eponge', '$couteau_chaleur', '$dressage', '$mixte', '$filet', '$mord', '$martinguale', '$croupiere')");



$marche2 = '../marche.php';
// 1 : on ouvre le fichier
$monfichier2 = fopen("argent.txt", "r+");
// 2 : on lit la première ligne du fichier
$verification1 = fgetc($monfichier2);
fseek($monfichier2, 0);
$verification2 = fgetc($monfichier2);
fseek($monfichier2, 0);
                     
if ($verification1 = '-')
   {
   header("Refresh: 5; URL=$marche2");
   echo "Erreur vous ne possedez pas la Somme nécessaire";
   }
                
elseif ($verification1 = 0)
    {    
    header("Refresh: 5; URL=$marche2");
    include ("somme.php");
    echo "Traitement de votre commande EN COURS.";
    }

        
        }
    }
mysql_close();
?>
les variable POST vienne d'un formulaire présentant tout les articles possibles
pouvez vous m'aider?

Posté : 21 août 2005, 17:07
par ouckileou
les balises
 sont mieux pour afficher du code

Ensuite, tu demandes de l'aide OK mais sur quoi précisément ?
tu as un problème précis ou tu ne sais pas par où démarrer ?

Posté : 21 août 2005, 17:11
par Le-Tinois
exacte dsl je savais que j'oublié un truc

avec ce code la j'arrive a interdir l'achat lorsque le montant que la personne posséde et en négatif dans le fichiers
mais ce que j'aimerais et que je n'y arrive pas c'est que par exemple si il lui reste 5€ cette personne ne puisse pas acheté un objet à 10€ de telle sorte que son compte ne soit pas négatif

Posté : 21 août 2005, 17:17
par ouckileou
Si tu étais inscrit tu pourrais éditer ton post et changer les balises...

De plus, les commentaires ne sont pas très explicites pour quelqu'un qui ne connait pas ton système

Mais de ce que j'ai lu j'ai compris que $ligne contient la somme d'argent possédée par la personne, c'est bien ça ?

A ce moment là, tu fais le test ici
if ($ligne<=0 AND $ligne >= $pages_vues)
Où est-ce que tu connais la valeur de l'objet demandé ? Il suffirait de comparer la valeur de $ligne avec cette valeur.

Pourquoi as-tu préféré un fichier qu'une base de données ?

Posté : 21 août 2005, 17:22
par Le-Tinois
je sais pas trop pourquoi j'ai pris un fichiers peu etre pour changer tu penses q'une table serait plus approprié?

sinon je n'avait pas pensé a comparer la valeur de l'objet avec le restant du compte marci je pense que sa devrait marcher

Posté : 21 août 2005, 17:24
par ouckileou
ben pour manipuler des données, faire des calculs, moi je trouverais ça plus pratique une base de données

Tu peux cibler les requêtes, prendre ce que tu veux, faire des modifications et des calculs plus facilement.

Alors que là tu lis toutes les lignes.

Enfin bon moi je préfère les bases de données pour ce genre d'utilisation, alors ce n'est pas un avis objectif :)

Posté : 21 août 2005, 17:27
par Le-Tinois
je pense que je vais suivre ton avis
la base de donnée c'est plus "simple" et plus clair et réutilisable par n'importe quoi ce qui est plus pratique qu'un fichiers t'as raison j'ai refaire tout sa
merci pour l'idée de la comparaison

Posté : 21 août 2005, 18:10
par Invité
je peux te montrer le code que j'ai modifié?
mais je ne l'ai toujours pas commenté :(

Posté : 21 août 2005, 18:16
par Invité
ben vas-y mais explique au moins les lignes où tu fais les opérations liées au sujet

et pense aux balises
 ;)

Toujours pas envie de t'inscrire ?  O:)

Posté : 21 août 2005, 18:20
par Le-Tinois_
si je vais peu etre le faire
parce que je sens que je vais avoir besion de vous :(
<?php require_once('../check.inc.php'); ?>
<?
$marche = '../marche.php';
//vérification des entrées du formulaire
if (isset($_POST['avoine']) AND isset($_POST['foin'])AND isset($_POST['granule'])AND isset($_POST['barre'])AND isset($_POST['etrille'])AND isset($_POST['bouchon'])AND isset($_POST['douce'])AND isset($_POST['cure_pied'])AND isset($_POST['peigne'])AND isset($_POST['eponge'])AND isset($_POST['couteau_chaleur'])AND isset($_POST['dressage'])AND isset($_POST['mixte'])AND isset($_POST['filet'])AND isset($_POST['mord'])AND isset($_POST['martinguale'])AND isset($_POST['croupiere']))
       {
       	mysql_connect("localhost", "root", "");
        mysql_select_db("horseland");
        //connection et vérification de la valeur de l'argent $argent
	$reponse=mysql_query("SELECT argent FROM argent WHERE pseudo = 'Le-Tinois'");
	$donnees = mysql_fetch_array($reponse);
	
	$argent = $donnees['argent'];
//différent calcul possible en fonction de l'entrée et du chiffre de l'entrée
	 $somme = $argent - (10*$_POST['avoine']);
	 $somme = $argent - (5*$_POST['foin']);
	 $somme = $argent - (5*$_POST['granule']);
	 $somme = $argent - (10*$_POST['barre']);
	 $somme = $argent - (5*$_POST['etrille']);
	 $somme = $argent - (5*$_POST['bouchon']);
	 $somme = $argent - (5*$_POST['douce']);
	 $somme = $argent - (5*$_POST['cure_pied']);
	 $somme = $argent - (10*$_POST['peigne']);
	 $somme = $argent - (5*$_POST['eponge']);
	 $somme = $argent - (5*$_POST['couteau_chaleur']);
	 $somme = $argent - (1000*$_POST['dressage']);
	 $somme = $argent - (300*$_POST['mixte']);
	 $somme = $argent - (300*$_POST['mord']);
	 $somme = $argent - (800*$_POST['martinguale']);
	 $somme = $argent - (800*$_POST['croupiere']);


//conditions argent erreur si on est en négatif et erreur si on passe en négatif aprés calcul
   	 if ($argent<=0 AND $somme>=$argent)
   	    {
   	    header("Refresh: 5; URL=$marche");
   	    echo "Erreur vous ne possedez pas la Somme nécessaire";
   	    }
//sinon tout vas pour le mieux on continue en entrant la nouvelle valeur $argent et les nouvelles données de stockage des produits
   	 else
   	    {
   	    mysql_query("INSERT INTO argent VALUES('','Le-Tinois','1000') WHERE pseudo='Le-Tinois'");
   	    
            $avoine = htmlentities ($_POST['avoine']);
            $foin = htmlentities ($_POST['foin']);
            $granule = htmlentities ($_POST['granule']);
            $barre = htmlentities ($_POST['barre']);
            $etrille = htmlentities ($_POST['etrille']);
            $bouchon = htmlentities ($_POST['bouchon']);
      	    $douce = htmlentities ($_POST['douce']);
	    $cure_pied = htmlentities ($_POST['cure_pied']);
            $peigne = htmlentities ($_POST['peigne']);
            $eponge = htmlentities ($_POST['eponge']);
            $couteau_chaleur = htmlentities ($_POST['couteau_chaleur']);
            $dressage = htmlentities ($_POST['dressage']);
            $mixte = htmlentities ($_POST['mixte']);
            $filet = htmlentities ($_POST['filet']);
            $mord = htmlentities ($_POST['mord']);
            $martinguale = htmlentities ($_POST['martinguale']);
            $croupiere = htmlentities ($_POST['croupiere']);
        
            mysql_query("INSERT INTO letinois VALUES('', '" . time() . "','$avoine', '$foin', '$granule', '$barre', '$etrille', '$bouchon', '$douce', '$cure_pied', '$peigne', '$eponge', '$couteau_chaleur', '$dressage', '$mixte', '$filet', '$mord', '$martinguale', '$croupiere')");
	    }

}
mysql_close();
?>

Posté : 21 août 2005, 18:22
par Invité
'ai vérifier sa marche pour l'ajout dans la table stock mais sa ne modifie pas l'argent si ça peu t'aider a trouver les erreurs

Posté : 21 août 2005, 18:32
par Le-Tinois
Bon maintenant je suis enregistré alors réponds moi please lol

Posté : 21 août 2005, 18:46
par Le-Tinois
Enfète j'ai du nouveau tout fonctionne exepté la partie calcul, il ne calcul rien du tout

Posté : 21 août 2005, 19:16
par Le-Tinois
Bon puisque mon technicien n'est plus la j'aimerais que quelqu'un trouve pourquoi ce script ne calcul rien
<?php require_once('../check.inc.php'); ?>
<?
$marche = '../marche.php';
//vérification des entrées du formulaire 
if (isset($_POST['avoine']) AND isset($_POST['foin'])AND isset($_POST['granule'])AND isset($_POST['barre'])AND isset($_POST['etrille'])AND isset($_POST['bouchon'])AND isset($_POST['douce'])AND isset($_POST['cure_pied'])AND isset($_POST['peigne'])AND isset($_POST['eponge'])AND isset($_POST['couteau_chaleur'])AND isset($_POST['dressage'])AND isset($_POST['mixte'])AND isset($_POST['filet'])AND isset($_POST['mord'])AND isset($_POST['martinguale'])AND isset($_POST['croupiere']))
       {
       	mysql_connect("localhost", "root", "");
        mysql_select_db("horseland");
//connection et vérification de la valeur de l'argent $argent 

            $avoine = htmlentities ($_POST['avoine']);
            $foin = htmlentities ($_POST['foin']);
            $granule = htmlentities ($_POST['granule']);
            $barre = htmlentities ($_POST['barre']);
            $etrille = htmlentities ($_POST['etrille']);
            $bouchon = htmlentities ($_POST['bouchon']);
      	    $douce = htmlentities ($_POST['douce']);
	    $cure_pied = htmlentities ($_POST['cure_pied']);
            $peigne = htmlentities ($_POST['peigne']);
            $eponge = htmlentities ($_POST['eponge']);
            $couteau_chaleur = htmlentities ($_POST['couteau_chaleur']);
            $dressage = htmlentities ($_POST['dressage']);
            $mixte = htmlentities ($_POST['mixte']);
            $filet = htmlentities ($_POST['filet']);
            $mord = htmlentities ($_POST['mord']);
            $martinguale = htmlentities ($_POST['martinguale']);
            $croupiere = htmlentities ($_POST['croupiere']);
        //sélection de la donnée $argent
	$reponse=mysql_query('SELECT argent FROM argent WHERE pseudo = \''.$_SESSION['login'].'\'');
	$donnees = mysql_fetch_array($reponse);

//différent calcul possible en fonction de l'entrée et du chiffre de l'entrée
	$argent = $donnees['argent'];
	
	 $somme = $argent - (10*$avoine);
	 $somme = $argent - (5*$foin);
	 $somme = $argent - (5*$granule);
	 $somme = $argent - (10*$barre);
	 $somme = $argent - (5*$etrille);
	 $somme = $argent - (5*$bouchon);
	 $somme = $argent - (5*$douce);
	 $somme = $argent - (5*$cure_pied);
	 $somme = $argent - (10*$peigne);
	 $somme = $argent - (5*$eponge);
	 $somme = $argent - (5*$couteau_chaleur);
	 $somme = $argent - (1000*$dressage);
	 $somme = $argent - (300*$mixte);
	 $somme = $argent - (300*$filet);
	 $somme = $argent - (300*$mord);
	 $somme = $argent - (800*$martinguale);
	 $somme = $argent - (800*$croupiere);

//conditions argent erreur si on est en négatif et erreur si on passe en négatif aprés calcul
   	 if ($argent<=0)
   	    {
   	    header("Refresh: 5; URL=$marche");
   	    echo "Erreur vous ne possedez pas la Somme nécessaire";
   	    }
 //sinon tout vas pour le mieux on continue en entrant la nouvelle valeur $argent et les nouvelles données de stockage des produits   	    
   	 else
   	    {
   	    mysql_query('UPDATE argent SET argent=\''.$somme.'\' WHERE pseudo = \''.$_SESSION['login'].'\'');
            mysql_query("INSERT INTO letinois VALUES('', '" . time() . "','$avoine', '$foin', '$granule', '$barre', '$etrille', '$bouchon', '$douce', '$cure_pied', '$peigne', '$eponge', '$couteau_chaleur', '$dressage', '$mixte', '$filet', '$mord', '$martinguale', '$croupiere')");
	    header("Refresh: 5; URL=$marche");
	    echo 'Votre COMMANDE est en COURS de Traitement Patientez...';
	    }

}
mysql_close();
?>
si vous voulez des explications demandé
mais pour vous aider la partie enregistrement fonctionne
mais il devrait modifier la valeur de $argent par $somme mais il ne le fait et j'aimerais savoir pourquoi

Posté : 21 août 2005, 19:39
par ouckileou_
j'étais au téléphone...

utilise ça pour afficher l'erreur MySQL s'il en y a une
mysql_query() or die(mysql_error());