Probléme udapte

Résolu
speedylol Messages postés 228 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 27 novembre 2013 - 27 oct. 2005 à 12:54
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006 - 27 oct. 2005 à 14:12
Bonjour voici un petit script pour gérer mon stock mais j'aimerais changer la valeur du stock dans ma table??? et cela ne fonction pas??? je vois pas pq seriez vous m'aider please. MERCI

<html>
<head>
<title>##############-STOCK-##############</title>


</head>


<?php require('config.php');


$total_total_q = 0;


$sql = "SELECT id_pro, quantite_prod FROM $table_produit where id_pro='$article'";
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
while ($row = mysql_fetch_array($req)) {
$article = $row['id_pro'];
$quantite = $row['quantite_prod'];
}


$total_total_q += $quantite;


function date_sortie($article)
{



$req = mysql_query("select date_com from $table_commande where id_com="$id"");
$date = @mysql_result($req,0,"date_com");
$date = ereg_replace('^([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})$', '\\3/\\2/\\1', $date);
return $date;
}


$total_produit_sortie = 0;


$req = mysql_query("select id_com,id_det,quantite from $table_detail where id_pro="$article" order by id_com desc");
while($ligne = mysql_fetch_array($req))
{
$article = $ligne["id_pro"];
$quantite_detail = $ligne["quantite"];
$id_com = $ligne["id_com"];


$date = date_sortie($id_com);


$id_com = sprintf("%08s",$id_com);;


$sql = "UPDATE $table_produit SET quantite_prod='$quantite_restante' where id_pro='$article'";
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());


$total_produit_sortie += $quantite_detail;


$quantite_restante = $total_total_q-$total_produit_sortie;
}
?>
\" width=\"200\">
----

" align="center" width="20%">Quantité,

----

<?php echo("$quantite_restante"); ?>

6 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 oct. 2005 à 13:08
$sql = "UPDATE $table_produit SET quantite_prod='$quantite_restante' where id_pro='$article'";
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());





donc, sera modifiée toute ligne qui respectera la condition : id_pro='$article'";




$req = mysql_query("select id_com,id_det,quantite from $table_detail where id_pro="$article" order by id_com desc");
while($ligne = mysql_fetch_array($req))
{
$article = $ligne["id_pro"];


On voit ici qu'article n'est pas renseigné : id_pro n'est pas parmi les colones séléctionnées...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
3
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
27 oct. 2005 à 13:17
Slt tu fais ca direct dans ton Update ! tu t'en merdes pas !

mysql_query("Update table set (champ)=(valeur) where id='$idmbr'") or die(mysql_error());

et voila !

;) Bonne journée
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 oct. 2005 à 13:42
[auteurdetail.aspx?ID=553087 milkasoprano], je crois que t'as pas trop regardé le post avant de dire ça...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
27 oct. 2005 à 13:57
1/ si ton champ id_pro est indexée, tes boucles whiles sont inutiles et
si il n'est pas indexé, mon intuition me dis qu'ils le devraient, a
moins que tu prévoies des doublons, mais là je me poserais encore plus
de questions. En effet, id_pro pour moi signifie "identifiant du
produit" donc en théorie il ne représente qu'un produit, donc qu'un
seul enregistrement. (Mais on n'a peut-être pas les même habitudes de
programmation).

De plus, sans parler d'indexation, ton premier while en tout cas montre
son inutilité, car les variables $article et $quantite auront les
valeurs retournées par le dernier passage de la boucle. Donc si ta
requête renvoyait plusieurs enregistrement, les premiers ne seront pas
utilisés.



2/ ta fonction date_sortie() utilise des variables ($table_commande et $id)
qui sont inaccessible à la fonction, et elle n'utilise jamais le
paramètre entré en argument puisque l'on ne retrouve pas la variable $article dans le corps de ta fonction



3/ lorsque tu lance la requête suivante :

$sql = "UPDATE $table_produit SET quantite_prod='$quantite_restante' where id_pro='$article'";

$quantite_restante n'existe pas, tu le définis et le calcul 5 lignes
plus loin (du moins au premier passage de ta boucle si tant est qu'il y
en ai plusieur (voir 1/) )



Voilà =)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 oct. 2005 à 14:01
c'est ce que j'ai dit... c'est pour ça que j'ai réponse accèptée...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
27 oct. 2005 à 14:12
J'en ai dis un peu plus il me semble ^_^;;
0
Rejoignez-nous