Page 1 sur 1

Faire des calculs

Posté : 04 sept. 2012, 13:19
par Pemco
<?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)

Re: Faire des calculs

Posté : 04 sept. 2012, 13:56
par Ryle
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 :)

Re: Faire des calculs

Posté : 04 sept. 2012, 14:46
par Pemco
le code de cal de marche pas pour info

Re: Faire des calculs

Posté : 04 sept. 2012, 15:43
par Mazarini
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 ?