PDA

View Full Version : درج اطلاعات فرم بصورت آرایه



saman.1001
دوشنبه 22 شهریور 1395, 13:24 عصر
سلام و عرض ادب
یک فرم دارم بدین صورت

<form action="" method="get">
<input name="field[]" />
<input name="field[]" />
<input name="field[]" />
<input type="submit" name="send" />
</form>

اینجور موارد چگونه در دیتابیس دج میکنند؟
وقتی اطلاعت در قالب get میگیرم و echo میزنم هر سه ورودی کنار هم چسبیده چاپ میشه
میخوام هر کدوم تو یک ستون درج بشه
لطفا راهنمائی نمائید
با تشکر

Unique
سه شنبه 23 شهریور 1395, 00:50 صبح
راستش من نمیفهمم آخر توی Database داری درج میکنی یا توی صفحه echo میکنی اما کلا توی این حالت متغیر GET_$ یک کلید به نام field خواهد داشت که آرایه ای از انتخاب ها هستش و مثلا میتونی implode کنی یا با foreach مقادیر را چاپ کنی یا هر کاری دلت بخواد.


echo "Selected fields: ".implode(", ",$_GET['field']);

saman.1001
سه شنبه 23 شهریور 1395, 10:49 صبح
سلام دوست عزیز
میخوام درج کنم در داخل دیتابیس
این قسمت از فرم + داره که کاربر هر چقدر بخواد رو + کلیک میکنه و از input یکی جدید میسازه
و مثلا یک عدد input داخل فرم هست و کاربر 9 بار کلیک میکنه روی + و در مجموع 10 input با مشخصات
<input name="field[]" />
ایجاد میشه
حالا در جدول موجود در دیتابیس چگونه ذخیره میشود؟
اگه در فرم مشخص بود چند input داریم مثلا 3 ستون در جدول براش درست میکردم ولی این روش کاربر مشخص میکنه چند بار میخواد از این input بسازه

numberone1
سه شنبه 23 شهریور 1395, 11:00 صبح
سلام
توی دیتابیس حتما باید بصورت رشته ذخیره بشه


foreach($_POST['field'] as $value){
if(isset($value) AND !empty($value){
echo $value;
}
}

بجای echo که من نوشتم میتونی هر بلایی خواستی سرش بیاری. validation , filter , append to string ....

Unique
سه شنبه 23 شهریور 1395, 12:01 عصر
حالا در جدول موجود در دیتابیس چگونه ذخیره میشود؟
اگه در فرم مشخص بود چند input داریم مثلا 3 ستون در جدول براش درست میکردم ولی این روش کاربر مشخص میکنه چند بار میخواد از این input بسازه
این دیگه بر میگرده به منطق برنامه شما ، از اونجا که هر کاربر ممکنه تعداد انتخاب های متفاوتی داشته باشه میتونی از Serialize (http://php.net/manual/en/function.serialize.php) استفاده کنی و آرایه input ها را بریزی توی یک ستون.