تالار گفتمان nCIS.ir

نسخه‌ی کامل: insert آرایه چندبعدی (حل شد)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
===
یه فرم دارم که از کاربر اطلاعات رو می گیره و قراره این اطلاعات وارد سه تا جدول بشه.
==
دو تا بخش از فرم به کاربر اجازه می ده که اگر مثلا چندتا ایمیل داره بتونه روی اضافه کلیک کنه و هر input باز بشه و هر چندتا ایمیل داره وارد کنه .
==
وقتی روی submit کلیک می کنه و من $_POST رو چاپ می کنم ارایه شبیه تصویری که پیوست شده نشون داده می شود که اینها رو می خوام بریزم توی سه تا جدول و می خوام بدونم چه جوری باید این کار رو بکنم؟
==
[attachment=263]
نکته:
مواردی که با مربع مشخص شده توی جدول شماره یک
مواردی که جلوی آنها خط عمودی کشیده شده توی جدول شماره دو
مواردی که جلوی آنها ستاره کشیده شده توی جدول شماره سه
مواردی هم که با فلش به آنها اشاره شده نمیخوا وارد جدول بشوند.
با تشکر
خوب شما باید مقادیری که از کاربر گرفتین و الان توی 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
    }
}

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

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


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