رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
insert آرایه چندبعدی (حل شد)
#1
سلام
===
یه فرم دارم که از کاربر اطلاعات رو می گیره و قراره این اطلاعات وارد سه تا جدول بشه.
==
دو تا بخش از فرم به کاربر اجازه می ده که اگر مثلا چندتا ایمیل داره بتونه روی اضافه کلیک کنه و هر input باز بشه و هر چندتا ایمیل داره وارد کنه .
==
وقتی روی submit کلیک می کنه و من $_POST رو چاپ می کنم ارایه شبیه تصویری که پیوست شده نشون داده می شود که اینها رو می خوام بریزم توی سه تا جدول و می خوام بدونم چه جوری باید این کار رو بکنم؟
==
   
نکته:
مواردی که با مربع مشخص شده توی جدول شماره یک
مواردی که جلوی آنها خط عمودی کشیده شده توی جدول شماره دو
مواردی که جلوی آنها ستاره کشیده شده توی جدول شماره سه
مواردی هم که با فلش به آنها اشاره شده نمیخوا وارد جدول بشوند.
با تشکر
پاسخ
تشکر شده توسط:
#2
خوب شما باید مقادیری که از کاربر گرفتین و الان توی POST_$ هست رو برحسب اندیس پردازش کنید. اگه اندیسش mablagheavaliye و... بود باز با foreach پیمایش کنید و توی جدول دوم بریزین. اگه ...rad بود توی جدول سوم بگذارین و بقیه موارد توی جدول اول. مثال:
foreach($_POST as $key => $value) {
    if(in_array($key, array('mablagheavaliye', '...')) {
        foreach($value as $subKey => $subValue) {
            // insert into 2nd table
        }
    } elseif(in_array($key, array('rad...', '...')) {
        foreach($value as $subKey => $subValue) {
            // insert into 3rd table
        }
    } else {
        // insert into 1st table
    }
}

البته کد بالا خیلی کلیه و فقط خواستم سر نخ رو بهتون بدم.
پاسخ
تشکر شده توسط:
#3
سلام
استاد توی این روشی که شما فرمودید
حالت شرطی پیش میاد و در آخر داده ها داخلی یکی از سه جدول ریخته می شود
من میخوام داده هایی که وارد شده وارد سه تا جدول بشود؟
پاسخ
تشکر شده توسط:
#4
نه شرطی پیش نمیاد. برای هر اندیس داره جداگانه چک میشه. میتونید قبل از foreach بیرونی یه آرایه خالی بسازین و توی قسمت else این کد رو بگذارین:
$result = array();
foreach($_POST as $key => $value) {
    ...
    else {
        $result[$key] = $value;
    }
}
الان بعد از foreach مقادیری رو توی result دارین که مربوط به جداول دوم و سوم نبودن. این مقادیر رو توی جدول اول ثبت کنید.
پاسخ
تشکر شده توسط:
#5
استاد
من سه تا جدول دارم
Tbl1
Tbl2
Tbl3

توی جدول 2 و 3 ای دی جدول یک رو باید قرار بدم
==


الان با استفاده از این
دیتایی که باید توی جدول 1 ریخته بشه ریخته میشه و توی دوتا جدول دیگه دیتایی ریخته نمیشه؟؟؟
پاسخ
تشکر شده توسط:
#6
همه مقادیر رو توی حلقه آرایه های جداگانه قرار بدین (تفکیک کنید) و بعد از حلقه، اول آرایه اصلی رو ثبت کنید و بعد آرایه های فرعی رو یکی یکی درج کنید. یک راه دیگه هم اینه که اندیسهایی که ثابت هستن و خودشون آرایه نیستن رو توی جدول 1 درج کنید و اونایی که آرایه هستن رو بعدش دوباره با foreach پیمایش کنید و یکی یکی توی جدولهای 2 و 3 ثبت کنید.
پاسخ
تشکر شده توسط:
#7
استاد
خیلی ممنون از لطفتون با روش اخری که فرمودین انجام شد
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 2 مهمان