PDA

View Full Version : سوال: درج مجدد رکورد در mysql با مقادیر 0 (حل شد)



moshaver71
یک شنبه 11 خرداد 1393, 09:47 صبح
سلام
روز همگی بخیر
من وقتی این کد رو اجرا میکنم اطلاعات دوبار ثبت میشه تو ردیف اول اطلاعات صحیح ثبت میشه (یعنی مقادیری که توسط فرم ارسال شده) ولی تو ردیف دوم اطلاعات اشتباه ثبت میشه (مقادیر 0 ارسال میشه)
کدی که توی صفحه ازش استفاده میکنم:


<?php if(isset($_GET['process']) && $_GET['process'] == 'final'){
require_once('class/receipt/receipt.class.php');
$Receipt = new Receipt;
$date_array = explode("/",$_POST['date']);
$date = jmktime('0','0','0',$date_array[1],$date_array[2],$date_array[0],'-1');
$query = $Receipt->AddReciept($_SESSION['ID'], $Receipt->CheckInput($_POST['account']), $Receipt->CheckInput($_POST['amount']), $Receipt->CheckInput($_POST['receiptno']), $Receipt->CheckInput($date), $Receipt->CheckInput($_POST['cdate']));
echo $query;
}

کلاسی که ازش استفاده میکنم:


public function AddReciept($user, $account, $amount, $receiptno, $date, $cdate) {
$this->Connect();
$query = mysql_query("INSERT INTO `receipt` VALUES ('','$user','$account','$amount','$receiptno','$da te','$cdate','1')");
if(mysql_affected_rows()>0) {
echo 'فیش شما ثبت شد، لطفا منتظر تایید فیش توسط امور مالی باشید.<br>نتیجه از طریق پیامک به اطلاع شما خوهد رسید.';
}
else {
echo 'عملیات ناموفق بود لطفا مجددا تلاش نمایید';
}
}

اینن نکته رو هم بگم که چک کردم کد تو صفحه دوبار اجرا نشه یعنی اسکریپتی نیست که صفحه رو مجددا reload بکنه
ممنون میشم اگه دوستان راهنمایی بکنن

MMSHFE
یک شنبه 11 خرداد 1393, 15:05 عصر
لوگهای MySQL رو چک کنید ببینید چه کوئریهایی اجرا شده. با Firebug و سربرگ Net و انتخاب Persist هم چک کنید درخواستهایی که برای سرور میره چیه. شاید حواستون نیست با AJAX و... هم صدا میزنید. میدونم گفتین کد رو چک کردین ولی امتحانش ضرری نداره.

moshaver71
دوشنبه 12 خرداد 1393, 09:21 صبح
لوگهای MySQL رو چک کنید ببینید چه کوئریهایی اجرا شده. با Firebug و سربرگ Net و انتخاب Persist هم چک کنید درخواستهایی که برای سرور میره چیه. شاید حواستون نیست با AJAX و... هم صدا میزنید. میدونم گفتین کد رو چک کردین ولی امتحانش ضرری نداره.
جناب شهرکی خیلی ممنون از پاسخگوییتون
من با firebug تست کردم و نتیجه فقط یک متغیر GET برای ورود به شرط اجرای دستور بود و یک متغیر POST شامل اطلاعات ارسالی توسط فرم
لاگ رو هم بررسی کردم ولی چیز خاصی داخلش ندیدم و اطلاعات داخلش صرفا مربوط به استارت شدن و آماده به کار بودن MySql بود
البته من لاگ رو از داخل فایل mysql.log چک کردم اگه منظور شما بررسی از جای دیگه ای هست ممنون میشم راهنمایی بفرمایید

moshaver71
دوشنبه 12 خرداد 1393, 13:16 عصر
دلیل ثبت مجدد nivoslider هست اما سر در نمیارم چه چیزی باعث میشه که nivo این مشکل رو ایجاد کنه؟
من همیشه از این پلاگین استفاده میکردم ولی تا حالا چنین مشکلی ایجاد نکرده بود

moshaver71
دوشنبه 12 خرداد 1393, 13:20 عصر
آخرین ورژن nivoslider رو دانلود کردم مشکل حل شد