/
  • ثبت اطلاعات در پایگاه داده

  • صفحه‌ها (2):
  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی ثبت اطلاعات در پایگاه داده
    نویسنده پیام
    maynoush آفلاین
    عضو جدید
    **

    ارسال‌ها: 25
    تاریخ عضویت: ۱۳۹۲ اسفند ۱
    اعتبار: 0
    تشکرها : 3
    ( 0 تشکر در 0 ارسال )
    ارسال: #1
    ثبت اطلاعات در پایگاه داده
    سلام
    تابع پایین رو واسه وارد کردن سفارشات تو پایگاه داده نوشتم
    کد PHP:
    function insert_order($order_details)
    {
    global 
    $connection;

    extract($order_details);

        if ((!
    $ship_name ) && (!$ship_address) && (!$ship_city) && (!$ship_state) && (!$ship_zip) && (!$ship_country)){
            
    $ship_name $name;
            
    $ship_address $address;
            
    $ship_city $city;
            
    $ship_state $state;
            
    $ship_zip $zip;
            
    $ship_country $country;
        }
        
    $query " SELECT customerid ";
        
    $query .= " FROM customers ";
        
    $query .= " WHERE name= " .$name"";
        
    $query .= " AND address= " .$address" AND city= " .$city" AND state= " .$state" AND zip= " .$zip" AND country= " .$country"";
        
    $result mysql_query($query$connection);
        
    $num_rows mysql_num_rows($result);
        if(
    $num_rows 0) {
            
    $customer mysql_fetch_object($result);
            
    $customerid $customer->customerid;
        }
        else{
            
    $query " INSERT INTO customers ";
            
    $query .= " VALUES('','$name','$address','$city','$state','$zip','$country')";
            
    $result =mysql_query($query$connection);
            if (!
    $result){
                return 
    false;
            }
        }
        
    $customerid $connection->insert_id;

    ولی دوتا error داره:
    1. mysql_num_rows() expects parameter 1 to be resource, boolean given
    2. Trying to get property of non-object in last line
    من قبلا num_rows رو همینطوری استفاده کردم،جوابم گرفتم.نمیفهمم چرا اینبار error میده؟؟
    سفارشها وقتی تو پایگاه داده ثبتم میشه کاربر یکسان واسه هر خرید id جدید دریافت میکنه،که نباید اینطوری باشه.
    راهنمایی کنید لطفا
    ۱۳۹۳ آبان ۹ ۰۷:۲۲ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    molana آفلاین
    چالیست - chalist
    *******

    ارسال‌ها: 1,764
    تاریخ عضویت: ۱۳۸۷ آذر ۳۰
    اعتبار: 60
    تشکرها : 1644
    ( 1550 تشکر در 1015 ارسال )
    ارسال: #2
    RE: ثبت اطلاعات در پایگاه داده
    وقتی این اتفاق می افته که کوئری شما خطا بر می ردونه (false)
    کوئری رو پرینت کن و توی phpmyadmin بزن ببین چه خروجی میگیری
    __________________________________________________________________________
    همه جوره اش رو داریم ظاهرن
    ۱۳۹۳ آبان ۱۰ ۰۲:۲۴ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    maynoush آفلاین
    عضو جدید
    **

    ارسال‌ها: 25
    تاریخ عضویت: ۱۳۹۲ اسفند ۱
    اعتبار: 0
    تشکرها : 3
    ( 0 تشکر در 0 ارسال )
    ارسال: #3
    RE: ثبت اطلاعات در پایگاه داده
    وقتی که یکی از فیلدها خالی باشه کدها درست اجرا میشن،هیچ تغییری تو دیتابیس نداریم و پیغام خطا به درستی به کاربر نشون داده میشه و ظاهرا همه چی درست به نظر میاد.
    ولی...
    وقتی همه فیلدها تکمیل میشه هم خطای num_rows رو دارم ، هم به کاربر پیام داده میشه که سفارش نمیتونه در دیتابیس ذخیره بشه اما phpMyAdmin رو که چک میکنم سفارش با id جدید ثبت شده؟؟
    ۱۳۹۳ آبان ۱۰ ۰۸:۴۰ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    molana آفلاین
    چالیست - chalist
    *******

    ارسال‌ها: 1,764
    تاریخ عضویت: ۱۳۸۷ آذر ۳۰
    اعتبار: 60
    تشکرها : 1644
    ( 1550 تشکر در 1015 ارسال )
    ارسال: #4
    RE: ثبت اطلاعات در پایگاه داده
    من نگفتم که تو دیتابیس ثبت شده یانه
    این اصلن مهم نیست
    شما باید ببینی چه کوئری یی می زنی

    کد PHP:
    $query " SELECT customerid ";
        
    $query .= " FROM customers ";
        
    $query .= " WHERE name= " .$name"";
        
    $query .= " AND address= " .$address" AND city= " .$city" AND state= " .$state" AND zip= " .$zip" AND country= " .$country"";
    ....
        
    $result mysql_query($query$connection); 
    به جای ... کوئری رو چاپ کن و اون کوئری رو که چاپ شده کپی کن توی phpmyadmin
    ببین چیزی بر می گردونه یا نه
    __________________________________________________________________________
    همه جوره اش رو داریم ظاهرن
    ۱۳۹۳ آبان ۱۰ ۰۲:۵۰ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : Maysam.m
    Maysam.m آفلاین
    میثم محمودی
    ****

    ارسال‌ها: 328
    تاریخ عضویت: ۱۳۸۹ مهر ۱۷
    اعتبار: 12
    تشکرها : 251
    ( 211 تشکر در 156 ارسال )
    ارسال: #5
    RE: ثبت اطلاعات در پایگاه داده
    همیشه برای دیباگ کوئری بهتره کوئری نهایی رو چاپ کنی و توی phpmyadmin بزنی ببینی مشکلش کجاست
    __________________________________________________________________________
    میثم محمودی | انجمن کد ایگنایتر فارسی
    --------------------------
    هرگز نمي توان با آدمهاي کوچک کارهاي بزرگ انجام داد
    ۱۳۹۳ آبان ۱۰ ۰۳:۴۱ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : maynoush
    maynoush آفلاین
    عضو جدید
    **

    ارسال‌ها: 25
    تاریخ عضویت: ۱۳۹۲ اسفند ۱
    اعتبار: 0
    تشکرها : 3
    ( 0 تشکر در 0 ارسال )
    ارسال: #6
    RE: ثبت اطلاعات در پایگاه داده
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'number 234 AND city= tehran AND state= tehran AND zip= 987654321 AND country= Iran' at line 1
    این خطا رو میده
    میدوم که این خطا وقتی میاد که:
    1.از کلمات کلیدی استفاده کرده باشم.
    2.انواع دادهای اشتباه تو فیلدها گذاشته باشم.مثلا اینکه متن رو تو فیلد عددی گذاشته باشم.
    3.از دستورات تاریخ گذشته استفاده کرده باشم.

    فیلد address رو از نوع char تعریف کردم.میتونه به این خاطر باشه؟؟
    فاصله ای که بین کلمات گذاشتم میتونه مشکل زا باشه؟؟
    ۱۳۹۳ آبان ۱۶ ۱۲:۴۳ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    molana آفلاین
    چالیست - chalist
    *******

    ارسال‌ها: 1,764
    تاریخ عضویت: ۱۳۸۷ آذر ۳۰
    اعتبار: 60
    تشکرها : 1644
    ( 1550 تشکر در 1015 ارسال )
    ارسال: #7
    RE: ثبت اطلاعات در پایگاه داده
    مقادیر غیر عددی رو توی کوتیشن بزار
    __________________________________________________________________________
    همه جوره اش رو داریم ظاهرن
    ۱۳۹۳ آبان ۱۶ ۰۵:۵۲ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : maynoush
    oia آفلاین
    محمد ثانی
    *****

    ارسال‌ها: 2,014
    تاریخ عضویت: ۱۳۸۷ آذر ۲۶
    اعتبار: 66
    تشکرها : 2330
    ( 2091 تشکر در 1290 ارسال )
    ارسال: #8
    RE: ثبت اطلاعات در پایگاه داده
    (۱۳۹۳ آبان ۱۶ ۰۵:۵۲ عصر)molana نوشته شده توسط:  مقادیر غیر عددی رو توی کوتیشن بزار

    تمام مقادیر رئ با سینگل کوتیشن (Single Quotation) نقل قول (Quote) کن!
    ۱۳۹۳ آبان ۱۷ ۱۱:۳۱ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : maynoush
    maynoush آفلاین
    عضو جدید
    **

    ارسال‌ها: 25
    تاریخ عضویت: ۱۳۹۲ اسفند ۱
    اعتبار: 0
    تشکرها : 3
    ( 0 تشکر در 0 ارسال )
    ارسال: #9
    RE: ثبت اطلاعات در پایگاه داده
    مرسی دوستان
    مشکل کوئری رفع شد ولی هنوز دیتا بیس مقادیر غلط نشون میده.
    وقتی همه فیلدها تکمیل میشه به کاربر پیام داده میشه که سفارش نمیتونه در دیتابیس ذخیره بشه اما phpMyAdmin رو که چک میکنم سفارش با id جدید ثبت شده؟؟
    یک کاربر مشخص واسه هر بار سفارش یک id جدید میگیره
    من تمام سفارش های table customers رو پاک کردم ولی هنوز id ها از ادامه عددهای قبلی میاد.چیکار کنم صفر بشه؟
    ۱۳۹۳ آبان ۱۷ ۰۲:۵۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    Alaa غایب
    علا عالم فلکی
    ***

    ارسال‌ها: 944
    تاریخ عضویت: ۱۳۹۲ فروردين ۲۰
    اعتبار: 52
    تشکرها : 744
    ( 663 تشکر در 478 ارسال )
    ارسال: #10
    RE: ثبت اطلاعات در پایگاه داده
    از این کد استفاده کن :
    کد PHP:
    ALTER TABLE `table_nameAUTO_INCREMENT=
    __________________________________________________________________________
    ۱۳۹۳ آبان ۱۷ ۰۴:۱۷ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

  • صفحه‌ها (2):
  • ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS