Partage
  • Partager sur Facebook
  • Partager sur Twitter

table base

22 mars 2019 à 19:45:14

bonsoir

dans ma base 2 table article et commande

aticle(nomart,qte,dateacha),commande(num,qte,date,#nomart)

pour trouver qte restant de chaque article est ce que on utilise une autre table oou on fait dans la table commande

  • Partager sur Facebook
  • Partager sur Twitter
22 mars 2019 à 20:02:35

Bonjour,

La quantité restante est le résultat d'un calcul ... pas besoin de stocker l'information ...

SELECT
	A.nomart,
	A.qte AS qte_depart,
	SUM( C.qte ) AS qte_commande,
	A.qte - SUM( C.qte ) AS qte_restante
FROM
	article A
		INNER JOIN commande C
			ON A.nomart = C.nomart
GROUP BY A.nomart, A.qte

Si avec l'augmentation du volume de ta base cette requête devient lente (on parle de dizaine de milliers de commandes), il sera alors temps de réfléchir à une autre solution, avec en effet un stockage de la données dans la table article dans une nouvelle colonne stock.

Enfin, il n'est pas conseillé d'utiliser des colonnes alphanumériques comme clé primaire, mais plutôt des entiers auto-incrémentés ...

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
22 mars 2019 à 23:24:58

bonsoir

<?php
    //A faire avan toute chose,
    //pas besoin de connexion si les données sont vide
    if (empty($_POST['nomart']) || empty($_POST['qteart']) ||  empty($_POST['date_achat'])) {
        echo "<script language='javascript'> alert('champs vides') ; window.location= 'article.php'</script>";
    } else {
        include("connection.php");
        if (isset($_GET['nomart']) && $_GET['nomart'] == $_POST['nomart']) {
            $req="UPDATE article SET qteart=qteart + '".intval($_POST['qteart'])."' WHERE nomart='".$_POST['nomart']."'" ;
        } else {
            $req="insert into article values('".$_POST['nomart']."','".$_POST['qteart']."',NOW())";
        }
        $res = mysql_query($req) or die(mysql_error());
        header("Location: article.php" );
        exit; //sécurité
    }

?>

comment on peur ajouter cette code pour  trouver ja qte restante

SELECT
    A.nomart,
    A.qte AS qte_depart,
    SUM( C.qte ) AS qte_commande,
    A.qte - SUM( C.qte ) AS qte_restante
FROM
    article A
        INNER JOIN commande C
            ON A.nomart = C.nomart
GROUP BY A.nomart, A.qte




  • Partager sur Facebook
  • Partager sur Twitter
1 avril 2019 à 15:05:26

Bonjour,

Cela fait maintenant plusieurs sujets que tu postes avec du code obsolète, en démontrant un manque évident de formation et de recherche.

Je vais donc fermer tout tes sujets, et t'invite très rapidement à suivre le cours PHP/MySQL. Sans preuve de travail de ta part, je me verrai dans l'obligation de continuer à fermer tes sujets ...

Merci de ta compréhension.

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL