PDA

View Full Version : سوال: اجرای یک تراکنش مالی



numberone1
پنج شنبه 07 اردیبهشت 1391, 14:23 عصر
سلام
یک لیست هست که بعد انتخاب چک باکس و کلیک کردن بر روی کلید تائید باید گزینه های انتخاب شده تائید بشه و قبلش مبلغ های هر کدوم از اون محصولات از حساب کاربر کسر بشه بعد عملیات تائید انجام بشه
الان چند تا مشکل دارم
یکی اینکه اگر 2تا محصول انتخاب بشه اولین گزینه مبلغش از موجودی کاربر کمتر باشه ارور میده ولی دیگه دومین محصول هم همون ارور اول و میده دیگه عملیات تائید درست اجام نمیشه


if(isset($_POST['submit1'])){
$money = true;
if(!empty($_POST['checkbox'])){
$checkbox = ($_POST['checkbox']);
$how_many = count($checkbox);
for ($i=0; $i<$how_many; $i++) {
$query1 = mysql_query("SELECT * FROM `trades` WHERE `id` = '$checkbox[$i]' ");
$res = mysql_fetch_array($query1);
if($_POST['money'] == 0){
$query2 = mysql_query("SELECT * FROM `users` WHERE `id` = '$res[user_id]' ");
$res1 = mysql_fetch_array($query1);
if($res['money'] <= $res1['money']) {
$money = true;
}else{$money = false;
echo('موجودی کاربر از مبلغ محصول ' . $res['unit'] . ' کمتر میباشد ');}
}
}
}else{exit('<div class="msg msg-error"><p><strong> يك محصول را مشخص كنيد</strong></p></div>');}
if($money == true ){
for ($i=0; $i<$how_many; $i++) {
mysql_query("SET CHARACTER SET utf8");
mysql_query("START TRANSACTION;");
$query = mysql_query("UPDATE `trades` SET `app` = '1' WHERE `id` = '$checkbox[$i]'")or die(mysql_error());
if($query === false){
mysql_query("ROLLBACK;");
} else {
$result = mysql_query("UPDATE `users` SET `money` = `money` - '$res[money]' WHERE `id` ='$res[user_id]'");
if($result === false)
mysql_query("ROLLBACK;");
else
mysql_query("COMMIT;");
}
} if(mysql_affected_rows() > 0){
echo '<div class="msg msg-ok"><p>تائيد صلاحيت محصول با موفقيت انجام شد<p></div>' ; }else{echo '<div class="msg msg-error"><p><strong>مشكلي در انجام عمليات پيش آمده است لطفا لحظاتي بعد دوباره تلاش كنيد</strong><p></div>';}
}else{echo '<div class="msg msg-error"><p><strong> موجودی حساب برای تائید محصول کافی نمیباشد </strong><p></div>';}
}