نمایش نتایج: از شماره 1 تا 8 , از مجموع 8

موضوع: ثبت یک آرایه در یک فیلد از جدول mysql

  1. #1
    عضو انجمن
    تاریخ عضویت
    Jun 2015
    نوشته ها
    194
    تشکر تشکر کرده 
    213
    تشکر تشکر شده 
    22
    تشکر شده در
    20 پست

    Cool ثبت یک آرایه در یک فیلد از جدول mysql

    بعد از ساختن دسته بندی مطالب نوبت به ایجاد صفحه ( ایجاد پست ) رسیدم .
    همه چیز اوکیه - و وقتی کاربر برای پستش دسته انتخاب میکنه ( id دسته های مورد نظر رو میریزم داخل یک ارایه ) . شما فرض کنید یک پست در چنتا دسته باشه . مثلا یک پست هم در زمینه سلامت باشه هم در زمینه ورزش و هم در زمینه بدنسازی .
    حالا موقع ثبت آرایه مورد نظر در بانک اطلاعاتی میرسه . هر کاری میکنم نمیتونم همه id های داخل ارایه رو تو mysql ثبت کنم . از foreach هم استفاده کردم فقط id اخرین دسته انتخابی ثبت میشه .

  2. # ADS




     

  3. #2
    عضو انجمن miladtnt آواتار ها
    تاریخ عضویت
    Mar 2016
    محل سکونت
    TabriZ
    نوشته ها
    247
    تشکر تشکر کرده 
    219
    تشکر تشکر شده 
    376
    تشکر شده در
    275 پست

    پیش فرض پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql

    اخرش رو متوجه نشدم foreach برا چیه

    - - - Updated - - -

    <?php
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

    echo json_encode($arr);
    ?>

    The above example will output:

    {"a":1,"b":2,"c":3,"d":4,"e":5}

  4. #3
    عضو انجمن
    تاریخ عضویت
    Jun 2015
    نوشته ها
    194
    تشکر تشکر کرده 
    213
    تشکر تشکر شده 
    22
    تشکر شده در
    20 پست

    پیش فرض پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql

    کد PHP:
    $category_id=$_POST['category_id'];

    foreach(
    $category_id as $cat){
                    
                }
                if(
    $a==&& $b==&& $c==&& $d==&& $e==&& !empty($time) && !empty($date) && !empty($level)){
                    
    $record=$connect->prepare("INSERT INTO `db_post` (`title`,`text`,`description`,`keywords`,`time`,`date`,`author_id`,`category_id`) VALUES (?,?,?,?,?,?,?,?)");
                    
    $record->bindValue(1,$post['title']);
                    
    $record->bindValue(2,$post['text']);
                    
    $record->bindValue(3,$post['description']);
                    
    $record->bindValue(4,$post['keywords']);
                    
    $record->bindValue(5,$time);
                    
    $record->bindValue(6,$date);
                    
    $record->bindValue(7,$level);
                    
    $record->bindValue(8,$cat);
                    if(
    $record->execute()){
                        
    $success='پست شما با موفقیت در وبسایت ثبت شده است .';
                    }
                    else{
                        
    header('location: post.php');
                        die;
                    }
                } 

  5. #4
    عضو انجمن miladtnt آواتار ها
    تاریخ عضویت
    Mar 2016
    محل سکونت
    TabriZ
    نوشته ها
    247
    تشکر تشکر کرده 
    219
    تشکر تشکر شده 
    376
    تشکر شده در
    275 پست

    پیش فرض پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql

    ارایه رو json کنین اونو تو دیتابیس ذخیره کنین ! وقتیم از دیتابیس درمیارید json_decode استفاده کنین

  6. تعداد تشکر ها از miladtnt به دلیل پست مفید


  7. #5
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql

    کدی که نوشتید قرار دهید، به جای آرایه برای دسته بندی، implode کنید با کارکتر , ،حجم کمتری در دیتابیس میگیرد.

  8. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


  9. #6
    عضو انجمن miladtnt آواتار ها
    تاریخ عضویت
    Mar 2016
    محل سکونت
    TabriZ
    نوشته ها
    247
    تشکر تشکر کرده 
    219
    تشکر تشکر شده 
    376
    تشکر شده در
    275 پست

    پیش فرض پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql

    نقل قول نوشته اصلی توسط <?php?> نمایش پست ها
    کد PHP:
    $category_id=$_POST['category_id'];

    foreach(
    $category_id as $cat){
                    
                }
                if(
    $a==&& $b==&& $c==&& $d==&& $e==&& !empty($time) && !empty($date) && !empty($level)){
                    
    $record=$connect->prepare("INSERT INTO `db_post` (`title`,`text`,`description`,`keywords`,`time`,`date`,`author_id`,`category_id`) VALUES (?,?,?,?,?,?,?,?)");
                    
    $record->bindValue(1,$post['title']);
                    
    $record->bindValue(2,$post['text']);
                    
    $record->bindValue(3,$post['description']);
                    
    $record->bindValue(4,$post['keywords']);
                    
    $record->bindValue(5,$time);
                    
    $record->bindValue(6,$date);
                    
    $record->bindValue(7,$level);
                    
    $record->bindValue(8,$cat);
                    if(
    $record->execute()){
                        
    $success='پست شما با موفقیت در وبسایت ثبت شده است .';
                    }
                    else{
                        
    header('location: post.php');
                        die;
                    }
                } 

    این روش درستی نیست همه دسته هاتون که تو ارایه هستن رو اینجور ذخیره کنین

    - - - Updated - - -

    دوست عزیز نمیدونم تو کلاس های هسته جلوش گرفته شده یا نه ولی این روش کدنویسیتون sql injection داره ها
    ویرایش توسط miladtnt : April 30th, 2016 در ساعت 15:19

  10. تعداد تشکر ها از miladtnt به دلیل پست مفید


  11. #7
    عضو انجمن
    تاریخ عضویت
    Jun 2015
    نوشته ها
    194
    تشکر تشکر کرده 
    213
    تشکر تشکر شده 
    22
    تشکر شده در
    20 پست

    پیش فرض پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql

    از sql injection با یک تابع هنگام ورودی جلوگیری شده . بخشی از کد رو اینجا گذاشتم .
    این تمام کد صفحه ایجاد مطلب هست :
    http://paste.ofcode.org/scghhzeiycWX6b3AwDD4qd

  12. تعداد تشکر ها از <?php?> به دلیل پست مفید


  13. #8
    عضو انجمن
    تاریخ عضویت
    Jun 2015
    نوشته ها
    194
    تشکر تشکر کرده 
    213
    تشکر تشکر شده 
    22
    تشکر شده در
    20 پست

    پیش فرض پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql

    حل شد از همه دوستان ممنونم

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. /var/log/mysql/mysql-slow.log در بک اپ گیری
    توسط mha1368 در انجمن سوالات و مشکلات
    پاسخ ها: 3
    آخرين نوشته: October 11th, 2015, 23:36
  2. پاک شدن mysql.sock و استارت نشدن mysql
    توسط Hooramin در انجمن سوالات و مشکلات
    پاسخ ها: 4
    آخرين نوشته: August 24th, 2013, 19:48
  3. پاسخ ها: 14
    آخرين نوشته: August 11th, 2013, 00:44
  4. ارور Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (11)
    توسط pc.rootall در انجمن سوالات و مشکلات
    پاسخ ها: 8
    آخرين نوشته: July 20th, 2013, 16:37

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •