gestion de stock en php

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
justine
Arias
Messages : 10
Inscription : 21 mai 2005, 01:08

gestion de stock en php

Message par justine »

a chaque fois qu'une personne achete un produit, le produit est retranché dans la base de données au niveau des stocks

mais je rencontre un problème :

j'essaye de creer un fichier "stock.php"
mais il y a un probleme qui s'affiche

je crois que le code ci apres permet de mettre la requete sous forme de tableau
mais comment faire en sorte que ma requete se fasse en arriere plan?
c'est à dire que l'utilisateur ne voie pas le resultat de la requete, c'est à dire la suppression dans la base de données

merci de votre aide precieuse

erreur :
Parse error: parse error, unexpected T_VARIABLE in c:\program files\easyphp1-7\www\XXXXX\boutiqueinfo\stock.php on line 22

je pense que c'est un probleme de session


voici le code :

<?
include ("definitioninfo.php");

if (!session_id())
session_start();
session_register('ref_produit');


$ref_produit = $_SESSION['ref_produit'];


if(!($base=mysql_connect("localhost","root","")))
{
echo "<br><B>probleme lors de la connexion à MySql</B><br>";
exit();
}
else
{
mysql_select_db(BASE, $base);
if ((mysql_query($tab_com = "UPDATE produit SET stock_produit=stock_produit-1 WHERE ref_produit='"$ref_produit"'", $base))) ==> LIGNE 22

$res_com = mysql_fetch_array($tab_com); //tableau contenant les valeurs de la requete (resultat_commande)

}


?>
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

Message par GregK84 »

il manque un : en fin de ligne.

et perso je procede comme cela :

Code : Tout sélectionner

$sql = "UPDATE produit  SET stock_produit=stock_produit-1 WHERE ref_produit = '".$ref_produit."';";
$result = mysql_query($sql) or die("ERREUR: La requête n'est pas valide: ".mysql_error());
$message = ("Le stock a été diminué de X avec succès !");
et au dessus de ta page :

Code : Tout sélectionner

if(isset($message)) {
    print($message);
}
j'espere avoir pu t'aider :wink:
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Effectivement, il manque un ; mais tu as aussi un problème avec tes guillemets. Tu les fermes avant $ref_produit mais sans utiliser l'opérateur de concaténation (le point).
justine
Arias
Messages : 10
Inscription : 21 mai 2005, 01:08

gestion de stock en php

Message par justine »

merciiii greg ca marche!!!!!
sui trop contente merci encore de ton aide!! :D
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

Message par GregK84 »

de rien :wink:
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
justine
Arias
Messages : 10
Inscription : 21 mai 2005, 01:08

gestion de stock en php

Message par justine »

merci merciiiiiiii
lol
et j'aurais une autre question
tu vois sur ma page "ordinateur de bureau.php" je voudrais mettre un truc du genre :

if ($stock_produit['article'] = 0)
{
echo "Produit epuisé";
}

mais ca n'a pas l'air de marcher :s
je pense que t'as compris que lorsque le stock_produit = 0 il faudrait que l'acheteurs soit informé

je te donne le code de ma page ordinataur de bureau.php :


<?php
if (!session_id())
session_start();

if ($stock_produit['article'] = 0)
{
echo "Produit epuisé";
}


echo "<html>
<title>Les ordinateurs de bureau</title>
<head><center><u><font size=+3>Les ordinateurs de bureau</center></font></head></u> <br><br><br>
<font face=\"comic sans ms \"align=\"left\"><a href=\"accueil.htm\">Accueil</font></a>

<center><font size=+2 color=\"brown\"><b><u>HP Pavilion t759.fr + écran f1723 17\" TFT + appareil photo numérique Photosmart R707</u></b></center></font>

<br><br><center><img src =\"ordinateur de bureau1.JPG\">

<p><b><u>Caracteristiques</u> : Processeur : Intel Pentium 4 540 à 3,20 GHz avec technologie Hyper-Threading.<br> Mémoire vive : 512 Mo.<br> Disque dur : 200 Go
<br>Lecteur DVD-ROM et de carte 9 en 1.<br> Graveur CD/DVD biformat double couche<br>
<center><u><b><p><font color=\"grey\" size = +2 >Prix : 1599 € HT</p></u></b></font></center>

<center><form method = \"POST\" action=\"http://127.0.0.1/oceanecoin/boutiqueinf ... center><br>
<b>quantité:</b>
<select name=\"quantite\">
<option value='1' selected>1
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>
</td>
</tr>
<tr>
<td>
<input type=\"image\" name=\"ajouter\" src=\"http://127.0.0.1/oceanecoin/boutiqueinfo/ajouter.gif\">
</td>
</tr>
</table>
<input type = \"hidden\" name=\"article\" value=\"HP Pavilion t759.fr + écran f1723 17 TFT + appareil photo numérique Photosmart R707\">
</form>
</td>
</b></p></center><br><br>
<td align='center'>
<table>
</b></p></center><br><br>

<p><font color = \"red\" size=+1><b><i><u>Fiche technique</p></font></b></u></i>
<table border=\"8\">
<tr>
<td><u><b><font color=\"blue\"> Constructeur</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">Hewlett Packard</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Type de boîtier</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">Mini Tour</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Microprocesseur</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">Intel Pentium 4 HT</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Fréquence du processeur / Fréquence de Bus</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">3,20 GHz / 800 MHz</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Chipset</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">Intel 915P Express</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Mémoire cache externe</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">1 Mo de niveau 2</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Taille mémoire vive installée / mémoire maximale</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">512 Mo DDR / 4 Go</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Capacité disque dur / vitesse de rotation</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">200 Go SATA (dont 5 Go réservés au système de restauration) / 7200 tours/min</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Lecteur de cartes mémoire</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">9 en 1</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Lecteur de disquettes 3,5 pouces</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">non</font> </td>
</tr>
<tr>
</table>
<br><br><br><br><br><br>









<center><font size=+2 color=\"brown\"><b><u>Apple eMac G4 1,25 GHz 256 Combo</u></b></center></font>
<br><br><center><img src =\"ordinateur de bureau2.JPG\">
<p><b><u>Caracteristiques</u> : Processeur : PowerPC G4 à 1,25 GHz.<br> Mémoire vive : 256 Mo.<br> Disque dur : 40 Go.
<br>Combiné lecteur DVD-ROM et graveur CD-RW 8x.<br>Ecran 17\" CRT<br></center>

<center><u><b><p><font color=\"grey\" size = +2>Prix : 849 € HT</p></u></b></font></center>



<br><br>
<table>
<tr>
<td align =\"center\">
<form method = \"POST\" action=\"http://127.0.0.1/oceanecoin/boutiqueinf ... deinfo.php\">
<b>quantité:</b>
<select name='quantite'>
<option value='1' selected>1
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>
</td>
</tr>
<tr>
<td>
<input type=\"image\" name=\"ajouter\" src=\"http://127.0.0.1/oceanecoin/boutiqueinfo/ajouter.gif\">
</td>
</tr>
</table>
<input type = \"hidden\" name=\"article\" value=\"Apple eMac G4 1,25 GHz 256 Combo\">
</form>
</td>
</td>
</b></p></center><br><br>
<td align='center'>
<table>
</b></p></center><br><br>

<p><font color = \"red\" size=+1><b><i><u>Fiche technique</p></font></b></u></i>
<table border=\"8\">
<tr>
<td><u><b><font color=\"blue\"> Constructeur</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">Apple</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Type de boîtier</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">Monobloc</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Microprocesseur</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">PowerPC G4</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Fréquence du processeur / Fréquence de Bus</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">1,25 GHz / NC</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Mémoire cache externe</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">NC</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Taille mémoire vive installée / mémoire maximale</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">256 Mo DDR 333 MHz</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Capacité disque dur / vitesse de rotation</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">40 Go</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Lecteur CD-ROM, DVD-ROM / Graveur CD-R, CD-RW</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">Combiné lecteur DVD-ROM et Graveur CD-RW 8x</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Lecteur de disquettes 3,5 pouces</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">non</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Modèle de processeur graphique / taille mémoire vidéo</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">Ati Radeon 9200 / 32 Mo DDR</font> </td>
</tr>
</table>
<br><br><br><br><br><br>



<center><font size=+2 color=\"brown\"><b><u>Fujitsu-Siemens Scaleo Pa PR2811 + écran ScaleoView X17-3 17\" TFT
</u></b></center></font>
<br><br><center><img src =\"ordinateur de bureau3.JPG\">
<p><b><u>Caracteristiques</u> :Processeur : AMD Sempron 2800+.<br>Mémoire vive : 256 Mo.<br>Disque dur : 160 Go.<br>Lecteur DVD-ROM et graveur CD/DVD biformat double couche.</p></b>
</center>
<center><u><b><p><font color=\"grey\" size = +2>Prix : 799 € HT</p></u></b></font></center>

<table>
<tr>
<td align =\"center\">
<form method = \"POST\" action=\"http://127.0.0.1/oceanecoin/boutiqueinf ... deinfo.php\">
<b>quantité:</b>
<select name='quantite'>
<option value='1' selected>1
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>
</td>
</tr>
<tr>
<td>
<input type=\"image\" name=\"ajouter\" src=\"http://127.0.0.1/XXXXXXqueinfo/ajouter.gif\">
</td>
</tr>
</table>
<input type = \"hidden\" name=\"article\" value=\"Fujitsu-Siemens Scaleo Pa PR2811 + écran ScaleoView X17-3 17\" TFT\">
</form>
</td>
</td>
</b></p></center><br><br>
<td align='center'>
<table>
</b></p></center><br><br>

<p><font color = \"red\" size=+1><b><i><u>Fiche technique</p></font></b></u></i>
<table border=\"8\">
<tr>
<td><u><b><font color=\"blue\"> Constructeur</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">Fujitsu Siemens</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Type de boîtier</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">Mini Tour</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Microprocesseur</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">AMD Sempron</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Fréquence du processeur / Fréquence de Bus</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">2 GHz / NC</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Mémoire cache externe</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">256 Ko de niveau 2</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Taille mémoire vive installée / mémoire maximale</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">256 Mo DDR 333 MHz</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Capacité disque dur / vitesse de rotation</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">160 Go / 7200 tours/min</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Lecteur CD-ROM, DVD-ROM / Graveur CD-R, CD-RW</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">Lecteur DVD-ROM et graveur CD-RW, DVD -R/-RW, DVD +R/+RW, DVD +R double couche</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Sortie vidéo TV</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">Oui</font> </td>
</tr>
<tr>
<td><u><b><font color=\"blue\">Modèle de processeur graphique / taille mémoire vidéo</b></u>:&nbsp;&nbsp;&nbsp;</font><font color=\"green\">ATI Radeon 9200 SE / 128 Mo</font> </td>
</tr>
</table>
<br><br><br><br><br><br>
</table>
</body>
</html>";
?>

donc si tu peux m'aider se serais encore plus sympa ;)
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

Message par GregK84 »

tu ecris :

Code : Tout sélectionner

if ($stock_produit['article'] = 0) 
pour faire une comparaison/egalité, tu dois utiliser et non pas un simple tu as ecris :

Code : Tout sélectionner

$stock_produit['article'] = 0
$stock_produit['article'] prend la valeur "0"

Mais tu peux aussi écrire un truc du genre :

Code : Tout sélectionner

if (!$stock_produit['article']) {
echo("Produit épuisé");
}
et ca veut dire, si il n'est pas définit, tu affiche : produit épuisé.

voila, j'espere t'avoir aidé :wink:
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
justine
Arias
Messages : 10
Inscription : 21 mai 2005, 01:08

gestion de stock en php

Message par justine »

j'ai un erreur :
Notice: Undefined variable: stock_produit in c:\program files\easyphp1-7\www\oceanecoin\site info\ordinateur de bureau.php on line 5
je comprends ce que cela veut dire mais comment definir une variable qui n'a pas été utilisé avant puisque ordinateur de bureau est la 1ere page sur laquelle l'utilisateur va
donc on ne peut pas mettre :
$_SESSION['stock_produit']=$stock_produit car stock_produit n'a pas été utilisé avant

merci beaucoup encore
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

Message par GregK84 »

c'est normale, quand tu arrive sur ton site, tu ne connais pas l'etat de ton stock. en premier tu dois te connecter a ta base de donnée pour verifier l'état de ton stock.

le resultat du stock si tu dois l'utilise que sur cette page, tu le place dans une variable classique par contre, si tu veux pouvoir l'utilise sur d'autre page, tu place le resulta dans une variable de session.

en gros :

<?php
if (!session_id())
session_start();

connextion a la db et verification du stock
placement du stock ds la variable

if ($stock_produit['article'] = 0)
{
echo "Produit epuisé";
}

voila
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
justine
Arias
Messages : 10
Inscription : 21 mai 2005, 01:08

gestion de stock en php

Message par justine »

regarde ce que j'ai fait, dis moi si je suis sur une bonne voie, si ya des fautes ...

if(!($base=mysql_connect("localhost","root","")))
{
echo "<br><B>probleme lors de la connexion à MySql</B><br>";
exit();
}
else
{
mysql_select_db("XXXX", $base);

$sql = "SELECT stock_produit FROM produit WHERE designation_produit = '".$article."'";
$result = mysql_query($sql) or die("ERREUR: La requête n'est pas valide: ".mysql_error());
}

if ($sql == 0)
{
echo "Produit epuisé";
}
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Pas de faute en soi, sauf que le résultat de mysql_query ne sera pas la réponse à ta question, tu dois encore faire un mysql_fetch_array() ou mysql_fetch_object() (selon ta préférence personnelle). D'autre part, le else est en trop puisqu'il y a un exit() dans le if, et la sémantique HTML n'est pas vraiment bien respectée ;)

exemple probable :

Code : Tout sélectionner

if(!($base = mysql_connect("localhost","root",""))) {
  echo "<p><strong>Problème lors de la connexion à MySql</strong></p>";
  exit();
}
mysql_select_db("XXXX", $base);

$sql = "SELECT stock_produit FROM produit WHERE designation_produit = '".$article."'";
$result = mysql_query($sql) or die("ERREUR : La requête n'est pas valide : ".mysql_error());

$row = mysql_fetch_array($result);
$stock = $row['stock_produit'];

if ($stock == 0) {
  echo "<p>Produit epuisé</p>";
}
P.S. Essaie d'utiliser les tags "code", c'est beaucoup plus lisible.
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

Message par GregK84 »

si tu ne dois pas afficher de donnée que tu dois juste compte si ce n'est pas zero, je propose ceci.

Code : Tout sélectionner

$connexion = @mysql_connect("localhost", "nomdutilisateur", "motdepass") or die("ERREUR: Impossible de localiser le serveur de base de données !".mysql_error());
@mysql_select_db("db", $connexion) or die("ERREUR: Impossible de localiser la base de données !".mysql_error());

pour la connextion db, ensuite :

Code : Tout sélectionner

$query_count    = "SELECT count(*) FROM produit WHERE designation_produit = '".$article."'";
$result_count	= mysql_query($query_count);

while($row = mysql_fetch_array($result_count)){
	$totalrows = $row[0];
}

if(!$totalrows) { print(stock = 0); }


voila  :wink: 
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

Message par GregK84 »

oups post simultané :wink:
reponce un peut differente 8)
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
justine
Arias
Messages : 10
Inscription : 21 mai 2005, 01:08

gestion de stock en php

Message par justine »

huumm ok
mais comme j'ai plusieurs articles (3) sur la même page, faut il que je mette, pour chaque article, le : if ($stock == 0) {
echo "<p>Produit epuisé</p>"; au lieu de le mettre en haut de page?
mais est ce que le code "comprendra" qu'il s'agira de cet article et pas l'un des 2 autres?

merci de ta patience et desolée si je t'ennuie avec toutes mes questions :$
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

Message par GregK84 »

tu px créer 3 requete sql en haut de page (pour chaque article) et a la place ds mettre le resultat ds totalrows, tu place ds totalrows_articlea, totalrows_articleb, totalrows_articlec.

ou tu fais ta requete slq juste avant chaque affichage alors la tu px tjr utilise totalrows car il aura ete mis a jour par a requete.

enfin voila,
au plaisir de t'avoir aidé :wink:
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités