03-03-2007, 01:44 PM
D'accord je comprend mieux ,
J'ai fait quelques modifs et sa fonctionne bien maintenant
J'ai fait quelques modifs et sa fonctionne bien maintenant
Code PHP :
<?php
//la fonction:
function ajoutmarche($id,$id_objet,$nbdenre,$prixdenre,$isprix)
{
if ($nbdenre > 0 AND $prixdenre > 0)
{
mysql_query('UPDATE membres SET ble=ble-'.$nbdenre.' WHERE id="'.$id.'"');
$nombreentree = mysql_query('SELECT COUNT(*) AS entrerok FROM commerce_user WHERE id_objet="'.$id_objet.'"'); //Count pour determiner si table vide !!! j'ai supposé que id_objet de ta requete etait l'id de la denre
$entree = mysql_fetch_array($nombreentree);
if($entree['entrerok']==0) // Si table vide on fait un insert avec id_vente egal 0
{
mysql_query('INSERT INTO commerce_user VALUES ("0", "'.$id.'", "'.$nbdenre.'", "'.$prixdenre.'", "'.$id_objet.'")');
}
else // Si table non vide !!!! Pas besoin de elseif vu que c'est soit =0 soit !=0 le else suffit donc.
{
$recuperation = mysql_query('SELECT MAX(id_vente)FROM commerce_user WHERE id_objet="'.$id_objet.'"'); // Selectione le max id_vente !!! j'ai supposé que id_objet de ta requete etait l'id de la denre
$max= mysql_result($recuperation, 0);
$max++;
mysql_query('INSERT INTO commerce_user VALUES ("'.$max.'", "'.$id.'", "'.$nbdenre.'", "'.$prixdenre.'", "'.$id_objet.'")');
}
if($isprix)
{
mysql_query('UPDATE commerce SET nombre_denree=nombre_denree+'.$nbdenre.' WHERE id_objet="'.$id_objet.'" AND prix_denree="'.$prixdenre.'"'); //!!! j'ai supposé que id_objet de ta requete etait l'id de la denre
}
else
{
mysql_query('INSERT INTO commerce VALUES ("", "'.$nbdenre.'", "'.$prixdenre.'", "'.$id_objet.'")');
}
return true;
}
else
{
return false;
}
}
if (isset($_SESSION['logged']) && $_SESSION['logged'] === true)
{
$postprixble = $_POST['prix_ble'] ;
$postprixa = $_POST['prix_avoine'] ;
$postprixo = $_POST['prix_oignon'] ;
//on initialise les variable d'existance du prix
$isprixble=false; //le prix proposé pour le ble existe deja dans le commerce
$isprixoignon=false; //le prix proposé pour l'oignon existe deja dans le commerce
$isprixavoine=false; //le prix proposé pour l' avoine existe deja dans le commerce
//fin init
//vente//
//-------------------------- Recupe nombre denré ET requete vente id------------------
$recup_denre = mysql_query ('SELECT id, ble, oignon, avoine FROM membres WHERE pseudo="'.$pseudo.'"');
$denre_recup = mysql_fetch_array ($recup_denre) or die (mysql_error() );
$id=$denre_recup['id'];
$sql = 'SELECT id_objet FROM commerce
WHERE (id_objet=1 AND prix_denree="'.$postprixble.'")
OR (id_objet=2 AND prix_denree="'.$postprixo.'")
OR (id_objet=3 AND prix_denree="'.$postprixa.'")';
$query_commerce = mysql_query ($sql);
while ($vm = mysql_fetch_array ($query_commerce))
{
switch($vm['id_objet'])
{
case 1 :
$isprixble=True; //le prix proposé pour le ble existe deja dans le commerce
break;
case 2 :
$isprixoignon=True; //le prix proposé pour l'oignon existe deja dans le commerce
break;
case 3 :
$isprixavoine=True; //le prix proposé pour le ble existe deja dans le commerce
break;
}
}
//---------------Fin ------------------------------------------------
//Necessaire à la vente du ble
if (isset($_POST['ble']) AND is_numeric($_POST['ble']) OR isset($_POST['oignon']) AND is_numeric($_POST['oignon']))
{
if ( $denre_recup['ble'] < $_POST['ble'] OR $denre_recup['oignon'] < $_POST['oignon'] ) // Si denrée possédé inferieur aux denrée postée
{
echo'Mise sur le marché impossible';
}
elseif (ajoutmarche($id,1,$_POST['ble'],$postprixble,$isprixble))
{
echo'Denrée mise sur le marché';
}
elseif (ajoutmarche($id,2,$_POST['oignon'],$postprixo,$isprixoignon))
{
echo'Denrée mise sur le marché';
}
else
{
echo 'Mise sur le marché impossible: pas de prix ou pas de denrée';
}
}
}
Je pense que la fin poura etre optimiser nan ? Je vais essayer en attendant, en tous cas merci de ton aide !