PDA

View Full Version : مبتدی: ارسال چندین مقدار به یک سطر در دیتابیس. شدنی است؟ چطوری؟



binboy
شنبه 18 تیر 1390, 19:46 عصر
سلام
می خواستم بپرسم چطوری میشه چند مقدار را در یک سطر از جداول دیتابیس ذخیره کرد.

قصد استفاده از اضافه کننده فیلذ با جی کوئری را دارم ولی متاسفانه نمی دونم هر فیلدی که اظافه میشه چطوری باید در دیتابیس ذخیره بشه و بعد جداگانه فراخوانی کرد؟

دمو: http://papermashup.com/demos/dynamic-form/

binboy
شنبه 18 تیر 1390, 23:49 عصر
لطفا جواب بدید کارم گیره

binboy
یک شنبه 19 تیر 1390, 00:36 صبح
مثل ذخیره کردن چک باکس است؟

MMSHFE
یک شنبه 19 تیر 1390, 08:49 صبح
با سلام، دوست گرامي شما بايد با JS يا JQ المنتهاي لازم رو بطور پويا اضافه كنيد و خاصيت name اونها رو بصورت آرايه قرار بدين (مثلاً []values) و يك دكمه معمولي (نه submit) يعني </"input type="button> بگذارين و توي رويداد كليك اون، تمام المنتهاي فرم رو ارسال كنيد (فرم رو دستي submit كنيد). در صفحه مقصد هم يك آرايه خواهيد داشت. مثلاً ['GET['values_$ يا ['POST['values_$ خودش يك آرايه خواهد بود كه هر عنصر، نشاندهنده مقدار يكي از كنترلها هست كه ارسال شده. اگه ميخواين اونها رو توي يك ركورد در DB ذخيره كنيد، ميتونيد با كمك implode و يك كاركتر مثل , اونها رو بهم بچسبونيد و يك رشته بسازيد و اون رو ذخيره كنيد. موقع خوندن هم با explode و توسط همون كاركتر جداكننده مثل , كه موقع ذخيره كردن، استفاده كردين، رشته خونده شده رو تفكيك كنيد و دوباره يك آرايه به دست بيارين.
موفق باشيد.

binboy
یک شنبه 19 تیر 1390, 10:49 صبح
فرستادن چک باکس ها نیز به این شکل است؟

MMSHFE
یک شنبه 19 تیر 1390, 12:34 عصر
درمورد چك باكس خيلي مطمئن نيستم ولي معمولاً به اين شكل هست كه انديس آرايه براي هر چك باكس، خالي گذاشته نميشه كه خودش خودكار انديس گذاري بشه. به جاش، از ID ركورد مربوطه براي انديس استفاده ميشه و موقع ايجاد، اون ID هم ثبت ميشه تا بعداً در صفحه مقصد بدونيد چك باكس كدوم ركوردها تيك خورده.

binboy
یک شنبه 19 تیر 1390, 16:10 عصر
برای اینجور ذخیره ها تو دیتابیس Type فیلد رو چی قرار بدم؟ int یا varchar یا ؟
مقدار هر فیلد (Length/Values1) را چقدر بزنم؟

اگر یک نمونه کد دیتابیس بهم بدید ممنون میشم.

binboy
یک شنبه 19 تیر 1390, 20:42 عصر
برای اینجور ذخیره ها تو دیتابیس Type فیلد رو چی قرار بدم؟ int یا varchar یا ؟
مقدار هر فیلد (Length/Values1) را چقدر بزنم؟

اگر یک نمونه کد دیتابیس بهم بدید ممنون میشم.

ضمن اینکه زحمت پاسخ سوال بالا را میکشید به سوال زیر هم پاسخ بدید.
فرق serialize (http://php.net/manual/en/function.implode.php) با implode چیست؟ کدام استفاده اش بهتر است؟

MMSHFE
دوشنبه 20 تیر 1390, 07:59 صبح
دوست گرامي، كلاً Serialize يك نسخه قابل ذخيره سازي از هرگونه محتوا توليد ميكنه كه اين محتوا ميتونه يك عكس، آرايه يا هر چيز ديگه باشه و اون رو تبديل به يك رشته باينري ميكنه و بعداً با Unserialize ميشه دوباره اون رو به حالت اول برگردوند (البته نه در همه موارد و معمولاً با فارسي مشكل داره) اما implode يك آرايه رو تبديل به متن ميكنه و بين خونه هاش، كاركتر(هاي) جداكننده كه مشخص كردين رو قرار ميده تا بعداً بتونيد با explode دوباره توسط همون كاركتر(ها) رشته رو مجدداً به آرايه تبديل كنيد. معمولاً در اينگونه موارد چون تعداد از قبل مشخص نيست، ميشه از Text و VarChar استفاده كرد كه چون تعدادشون خيلي هم زياد نيست، VarChar به نظرم كافيه. اندازه رو هم برحسب نيازتون درنظر بگيرين. مثلاً اگه 100 عنصر در صفحه دارين، با فرض اينكه به هر كدوم يك كد دو رقمي بديم (از 00 تا 99) و در بدترين حالت، هر 100 عنصر انتخاب شده باشن، 200 كاركتر براي كدها و 99تا هم براي , لازم داريم. پس 300 اندازه مناسبي خواهد بود. موفق باشيد.