dsigner
Messages postés18Date d'inscriptionmardi 11 février 2014StatutMembreDernière intervention 2 novembre 2015
-
6 févr. 2015 à 14:45
topvision -
7 févr. 2015 à 21:58
Bonjour,
J ai une application de gestion de stock qui fonctionne sous forme de caddies et je voudrai pouvoir recuperer les variables entrees en vue de les sauvegarder vers une autre table et pouvoir calculer la quantite restante. Mon soucci et que je n'arrive pas à recuperer les quantites entrees et de les inserrer dans la tables mouvement
voici mes pages
voici ma base
-- phpMyAdmin SQL Dump -- version 3.3.9.2 -- https://www.phpmyadmin.net/ -- -- Serveur: localhost -- Généré le : Dim 01 Février 2015 à 01:22 -- Version du serveur: 5.5.9 -- Version de PHP: 5.3.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */;
-- -- Base de données: `administrateur` -- CREATE DATABASE `administrateur` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `administrateur`;
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `login` varchar(15) NOT NULL, `pass` varchar(25) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
-- -- Contenu de la table `user` --
INSERT INTO `user` VALUES(1, 'admin', 'admin');
-- -- Contraintes pour les tables exportées --
-- -- Contraintes pour la table `Mouvement` -- ALTER TABLE `Mouvement` ADD CONSTRAINT `Mouvement_ibfk_1` FOREIGN KEY (`idarticles`) REFERENCES `articles` (`id`), ADD CONSTRAINT `Mouvement_ibfk_2` FOREIGN KEY (`qt_entree`) REFERENCES `articles` (`quantite`);
panier.php
<?php
session_start();
include_once("fonctions-panier.php");
$erreur = false;
$action = (isset($_POST['action'])? $_POST['action']: (isset($_GET['action'])? $_GET['action']:null )) ;
if($action !== null)
{
if(!in_array($action,array('ajout', 'suppression', 'refresh')))
$erreur=true;
//récuperation des variables en POST ou GET
$a = (isset($_POST['a'])? $_POST['a']: (isset($_GET['a'])? $_GET['a']:null )) ;
$s = (isset($_POST['s'])? $_POST['s']: (isset($_GET['s'])? $_GET['s']:null )) ;
$l = (isset($_POST['l'])? $_POST['l']: (isset($_GET['l'])? $_GET['l']:null )) ;
$p = (isset($_POST['p'])? $_POST['p']: (isset($_GET['p'])? $_GET['p']:null )) ;
$q = (isset($_POST['q'])? $_POST['q']: (isset($_GET['q'])? $_GET['q']:null )) ;
//Suppression des espaces verticaux
$l = preg_replace('#\v#', '',$l);
//On verifie que $p soit un float
$p = floatval($p);
//On traite $q qui peut etre un entier simple ou un tableau d'entier
if (is_array($q)){
$QteArticle = array();
$i=0;
foreach ($q as $contenu){
$QteArticle[$i++] = intval($contenu);
}
}
else
$q = intval($q);
}
if (!$erreur){
switch($action){
Case "ajout":
ajouterArticle($l,$q,$p);
break;
Case "suppression":
supprimerArticle($l);
break;
Case "refresh" :
for ($i = 0 ; $i < count($QteArticle) ; $i++)
{
modifierQTeArticle($_SESSION['panier']['libelleProduit'][$i],round($QteArticle[$i]));
}
break;
Default:
break;
}
}
echo '<?xml version="1.0" encoding="utf-8"?>';?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Votre liste d'achat</title>
</head>
<body>
<form method="post" action="panier.php">
<table style="width: 400px" border=1px solid gray>
<tr>
<td colspan="4" align='center'>Votre liste d'acchat</td>
</tr>
<tr>
<td>Libellé</td>
<td>Quantité</td>
<td>Prix Unitaire</td>
<td>Action</td>
</tr>
<?php
if (creationpanier())
{
$nbArticles=count($_SESSION['panier']['libelleProduit']);
if ($nbArticles <= 0)
echo "<tr><td>Votre panier est vide </ td></tr>";
else
{
for ($i=0 ;$i < $nbArticles ; $i++)
{
echo "<tr>";
echo "<td>".htmlspecialchars($_SESSION['panier']['libelleProduit'][$i])."</ td>";
echo "<td><input type=\"text\" size=\"4\" name=\"q[]\" value=\"".htmlspecialchars($_SESSION['panier']['qteProduit'][$i])."\"/></td>";
echo "<td>".htmlspecialchars($_SESSION['panier']['prixProduit'][$i])."</td>";
echo "<td><a href=\"".htmlspecialchars("panier.php?action=suppression&l=".rawurlencode($_SESSION['panier']['libelleProduit'][$i]))."\">XX</a></td>";
echo "</tr>";
}
echo "<tr><td colspan=\"2\"> </td>";
echo "<td colspan=\"2\">";
echo "TotalHT : ".MontantGlobal()." Fcfa";
echo "<br>";
echo " TVA : ".tva()." Fcfa<br>";
echo " TotalTTC : ".plustva()." Fcfa</br>";
echo "</td></tr>";
echo "<tr><td colspan=\"4\" align=\"center\">";
echo "<input type=\"submit\" value=\"Rafraichir\"/>";
echo "<input type=\"hidden\" name=\"action\" value=\"refresh\"/>";
echo "</td></tr>";
}
}
?>
</table>
<input type="submit" name="valider" value="envoiyer">
<a href="insert.php" target="parent" name="valider">Valider</a>
</form>
</body>
</html>
insert.php
<?php
session_start();
if(isset($_POST['valider'])) {
try {
$DB = new PDO('mysql: host=localhost;dbname=administrateur','root','');
$DB->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
//---PDO::ERRMODE_WARNING) affiche les erreurs
}
catch(PDOException $e){
echo 'la base de donnnée n\'est pas disponible, merci de réessayer plus tard';
}
$qt_rest = ($s - $q);
$d = array('$a','$s','$q','$qt_rest');
$req = $DB->prepare('INSERT INTO mouvement(idarticles,qt_entree,qt_sortie,qt_rest) VALUE (?,?,?,?)');
$req->execute($d);
}
?>
fonction-panier.php
<?php
/** * Verifie si le panier existe, le créé sinon * @return booleen */ function creationpanier(){ if (!isset($_SESSION['panier'])){ $_SESSION['panier']=array(); $_SESSION['panier']['libelleProduit'] = array(); $_SESSION['panier']['qteProduit'] = array(); $_SESSION['panier']['prixProduit'] = array(); $_SESSION['panier']['verrou'] = false; } return true; }
/** * Ajoute un article dans le panier * @param string $libelleProduit * @param int $qteProduit * @param float $prixProduit * @return void */ function ajouterArticle($libelleProduit,$qteProduit,$prixProduit){
//Si le panier existe if (creationpanier() && !isVerrouille()) { //Si le produit existe déjà on ajoute seulement la quantité $positionProduit = array_search($libelleProduit, $_SESSION['panier']['libelleProduit']);
if ($positionProduit !== false) { $_SESSION['panier']['qteProduit'][$positionProduit] += $qteProduit ; } else { //Sinon on ajoute le produit array_push( $_SESSION['panier']['libelleProduit'],$libelleProduit); array_push( $_SESSION['panier']['qteProduit'],$qteProduit); array_push( $_SESSION['panier']['prixProduit'],$prixProduit); } } else echo "Un problème est survenu veuillez contacter l'administrateur du site."; }
/** * Modifie la quantité d'un article * @param $libelleProduit * @param $qteProduit * @return void */ function modifierQTeArticle($libelleProduit,$qteProduit){ //Si le panier éxiste if (creationpanier() && !isVerrouille()) { //Si la quantité est positive on modifie sinon on supprime l'article if ($qteProduit > 0) { //Recharche du produit dans le panier $positionProduit = array_search($libelleProduit, $_SESSION['panier']['libelleProduit']);
if ($positionProduit !== false) { $_SESSION['panier']['qteProduit'][$positionProduit] = $qteProduit ; } } else supprimerArticle($libelleProduit); } else echo "Un problème est survenu veuillez contacter l'administrateur du site."; }
/** * Supprime un article du panier * @param $libelleProduit * @return unknown_type */ function supprimerArticle($libelleProduit){ //Si le panier existe if (creationpanier() && !isVerrouille()) { //Nous allons passer par un panier temporaire $tmp=array(); $tmp['libelleProduit'] = array(); $tmp['qteProduit'] = array(); $tmp['prixProduit'] = array(); $tmp['verrou'] = $_SESSION['panier']['verrou'];
} //On remplace le panier en session par notre panier temporaire à jour $_SESSION['panier'] = $tmp; //On efface notre panier temporaire unset($tmp); } else echo "Un problème est survenu veuillez contacter l'administrateur du site."; }
/** * Montant total du panier * @return int */ function MontantGlobal(){ $total=0; for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++) { $total += $_SESSION['panier']['qteProduit'][$i] * $_SESSION['panier']['prixProduit'][$i]; } return number_format($total, 0, ',', ' '); }
//MES FONCTIONS /** * Montant total du panier+tva * @return int */ function tva(){
/** * Fonction de suppression du panier * @return void */ function supprimepanier(){ unset($_SESSION['panier']); }
/** * Permet de savoir si le panier est verrouillé * @return booleen */ function isVerrouille(){ if (isset($_SESSION['panier']) && $_SESSION['panier']['verrou']) return true; else return false; }
/** * Compte le nombre d'articles différents dans le panier * @return int */ function compterArticles() { if (isset($_SESSION['panier'])) return count($_SESSION['panier']['libelleProduit']); else return 0;
c'est les variable que j'avais utilise lors de l'envoie depuis la page index.php.
j'ai esssaye avec la methode get mais pareil, mais sil ya une autre methode faites moi savoir puisque je suis bloque et a bout d'idee