Faire des calculs

Eléphanteau du PHP | 35 Messages

04 sept. 2012, 13:19

<?php
//Connexion à partir de la base 
$bdd=mysql_connect('localhost','login','');
mysql_select_db ('test', $bdd);
if (!$bdd){
	die('<p>Impossible de se connecter:'.mysql_error().'</p>');
}
define("bdcms",5);
mysql_select_db('test',$bdd);
if (!bdcms){
	die('<p>Impossible d\'utiliser la base de données:'.mysql_error().'</p>');
}
$sqlquery="select id,nom,prenom from membre order by nom";
$sqlqueryresult=mysql_query($sqlquery);
$sqlquery1="select id_categorie,libelle from categorie order by libelle";
$sqlqueryresult1=mysql_query($sqlquery1);
$sqlquery2="select reference,designation from produit order by reference";
$sqlqueryresult2=mysql_query($sqlquery2);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Gestion des stocks</title>
<link href="../victoire/template.css" rel="stylesheet" type="text/css" />
<link href="css/template.css" rel="stylesheet" type="text/css" />
</head>

<body>
<?php include('../marcel/entete.php'); ?>
<?php include('../marcel/menu.php'); ?>
<!--La partie principale-->
<div class="main">
<!--Message d'erreur-->
<div class="err">
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>	
<!--La boîte de connection-->
<div class="box">
<h1>Bordereau d'entrée en stock</h1>
<form action="entree_stock.php" method="post">
<div class="field">
Date de saisie: <input type="text" name="date_saisie" size="10" maxlength="10" value="<?php if (isset($_POST['date_saisie'])) echo htmlentities(trim($_POST['date_saisie'])); ?>"><br />
</div>
<div class="field">
Date facture: <input type="text" name="date_mouvement" size="10" maxlength="10" value="<?php if (isset($_POST['date_mouvement'])) echo htmlentities(trim($_POST['date_mouvement'])); ?>"><br />
</div>
<div class="field">
Nom et pr&eacute;nom utilisateur :
<select   name="p_nom" size="1" id="p_nom">
<?php 
while($row=mysql_fetch_array($sqlqueryresult,MYSQL_ASSOC)){
  echo"<option value='".$row['id']."'>".$row['nom']."   ".$row['prenom']."</option>";
  }
  ?>
</select>
</div>
<div class="field">
R&eacute;ference produit:<select   name="p_reference" size="1" id="p_reference" >
<?php 
while ($row=mysql_fetch_array($sqlqueryresult2,MYSQL_ASSOC)){
     echo"<option value='".$row['reference']."'>".$row['reference']."   ".$row['designation']."</option>";
  }
?>
</select>
</div>
<div class="field">
Cat&eacute;gorie: <select  name="categorie" size="1" id="categorie" >
<?php 
while ($row=mysql_fetch_array($sqlqueryresult1,MYSQL_ASSOC)){
     echo"<option value='".$row['id_categorie']."'>".$row['libelle']."</option>";
}
?>
</select>
</div>
<div class="field">
Quantité : <input  type="text" name="quantite" value="<?php if (isset($_POST['quantite'])) echo htmlentities(trim($_POST['quantite'])); ?>"><br />
</div>
<div class="field">
Prix unitaire : <input type="text" name="prix_unitaire" value="<?php if (isset($_POST['prix_unitaire'])) echo htmlentities(trim($_POST['prix_unitaire'])); ?>"><br />
</div>
<div class="field">
Prix total : <input type="text" name="prix_total" value="<?php if (isset($_POST['prix_total'])) echo htmlentities(trim($_POST['prix_total'])); ?>"><br />
</div>
<div class="buttons">
<input  class="button"type="submit" name="enregistrer" value="Enregistrer">
&nbsp;<input class="button" type="reset" />
</div>
</form>
</div>
</div>
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['enregistrer']) && $_POST['enregistrer'] == 'Enregistrer') {
// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
if ((isset($_POST['date_saisie']) && !empty($_POST['date_saisie'])) && (isset($_POST['date_mouvement']) &&
!empty($_POST['date_mouvement']))&&(isset($_POST['p_nom']) &&!empty($_POST['p_nom']))&&(isset($_POST['p_reference']) &&!empty($_POST['p_reference']))&&(isset($_POST['categorie'])&&!empty($_POST['categorie']))&&(isset($_POST['quantite'])&&!empty($_POST['quantite']))&&(isset($_POST['prix_unitaire'])&&!empty($_POST['prix_unitaire']))&&(isset($_POST['prix_total'])&&!empty($_POST['prix_total']))){
// Connexion à la base de données
$base = mysql_connect ('localhost', 'login', '');
$bdcm=mysql_select_db ('test', $base);
// on recherche si ce produit existe déjà dans la base de données
$sql = 'SELECT count(*) FROM entree_stock WHERE id_entree_stock="'.mysql_escape_string($_POST['id_entree_stock']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error(
));
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
$sql = 'INSERT INTO entree_stock VALUES(" ","'.mysql_escape_string($_POST['date_saisie']).'","'.mysql_escape_string($_POST['date_mouvement']).'","'.mysql_escape_string($_POST['p_nom']).'","'.mysql_escape_string($_POST['p_reference']).'","'.mysql_escape_string($_POST['categorie']).'","'.mysql_escape_string($_POST['quantite']).'","'.mysql_escape_string($_POST['prix_unitaire']).'","'.mysql_escape_string($_POST['prix_total']).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location:entree_stock.php');
exit();
}
else {
$erreur = 'Un produit existe  déjà avec cette reférence.';
}
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
?>
<!--Le pied de page-->
</div>
<?php include('../marcel/pied_de_page.php'); ?>	
</body>
</html>
Comment faire pour effectuer les calculs:prix_total=(quantite*prix_unitaire)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 sept. 2012, 13:56

Comment veux-tu le faire ? En php, ca se fait tel que tu l'as écrit, en sql, c'est un peu le même genre, sinon en dynamique pour l'utilisateur, il faut te tourner vers du javascript, mais ça reste le même principe.

Ca peut être quelque chose comme ça :
<div class="field">
Prix total : <input type="text" name="prix_total" value="<?php if (isset($_POST['prix_total']) && isSet($_POST['quantite'])) echo htmlentities($_POST['prix_total'] * $_POST['quantite']); ?>"><br />
</div>
A noter pour alléger ton code, que empty() test également si la variable est définie. Ainsi au lieu de faire :
if (... isset($_POST['quantite'])&&!empty($_POST['quantite']) ... ) 
tu peux faire simplement
if (... !empty($_POST['quantite']) ... ) 
Ca rendra ton code plus lisible et donc plus facile à maintenir :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 35 Messages

04 sept. 2012, 14:46

le code de cal de marche pas pour info

ViPHP
ViPHP | 2577 Messages

04 sept. 2012, 15:43

le code de cal de marche pas pour info
Mais encore ? Message d'erreur ? Résultat faux ? autre chose ?

Quel est le résultat et quel est le résultat attendu ?