علیرضا ساجدی
6 سال پیش توسط علیرضا ساجدی مطرح شد
9 پاسخ

ذخیره مقادیرچند checkbox بصورت یک آرایه

@hesammousavi
سلام
چطوری میتونم مقادیر چند checkbox رو
بصورت یک آرایه در دیتابیس قرارم بدم

بصورت معمولی امتحان کردم ولی نشد.


ثبت پرسش جدید
vahid Mohammadi
@viva.mohammadi 6 سال پیش آپدیت شد
2

@alireza2000sajedi
خب دوست من شما دو راه بیشتر نداری
۱- تبدیل آرایه به فرمت JSON و ذخیره در دیتابیس و بازخونی اون و تبدیل اون به فرمت آرایه
در زیر یک مثال برای ذخیره و بازخونی اون از دیتا بیس میارم

//Example PHP array
$example = array(1, 2, 3);

//Encode $example array into a JSON string.
$exampleEncoded = json_encode($example);

//Insert the string into a column
$sql = "INSERT INTO foo (bar) VALUES ('$exampleEncoded')";

//etc

//Example PHP array
$example = array(1, 2, 3);

//Encode $example array into a JSON string.
$exampleEncoded = json_encode($example);

//Insert the string into a column
$sql = "INSERT INTO foo (bar) VALUES ('$exampleEncoded')";

برای باز خونی باید decode کنید مثل مثال زیر :

//Select the row, just like you would any other row.
$sql = "SELECT bar FROM bar WHERE id = 1";
$result = $databaseObject->fetch($sql);

//Decode the JSON string using json_decode.
$example = json_decode($result['bar'], true);

//Do a var_dump, just to see the structure.
var_dump($example);

۲- استفاده از PHP serialize که لینک توضیح این دستور رو در زیر میزارم

http://us.php.net/manual/en/function.serialize.php

vahid Mohammadi
@viva.mohammadi 6 سال پیش مطرح شد
0

@alireza2000sajedi
منظورتون اگر از مقادیر VALUE هست شما بهتره یک MAP انجام بدین مثلا میتونید به شکل json در دیتا بیستون ذخیره کنید مثل مثال زیر

{checkbox1 : value1 , checkbox2 : value2,....}

علیرضا ساجدی
تخصص : Laravel,Vuejs
@alireza2000sajedi 6 سال پیش مطرح شد
0

@viva.mohammadi
راه حل ساده تر نداره؟


vahid Mohammadi
@viva.mohammadi 6 سال پیش آپدیت شد
0

@alireza2000sajedi
:)) چرا خوب داره ولی بهینه بودنش مطرحه
بیبین مثلا اگر چک باکسهای شما ثابت هست همیشه میتونید true و false بودنش رو با ۰ و ۱ نشون بدین مثلا تو دیتابیستون اگر مقدار ۱۱۰۱ رو ذخیره کردین یعنی چهارتا چکباکس دارین که فقط سومیش تیک نداره. به اینکار میگن Map کردن


علیرضا ساجدی
تخصص : Laravel,Vuejs
@alireza2000sajedi 6 سال پیش مطرح شد
0

@viva.mohammadi
اما چک باکس هایی که من دارم مقدارشون یه رشته هست و تعدادشون زیاده باید همه ی این مقادیرو داخل آرایه ثبت کنم منتهی به صورت آرایه میفرستم ولی در ثبت کردنشون ارور میده


علیرضا ساجدی
تخصص : Laravel,Vuejs
@alireza2000sajedi 6 سال پیش مطرح شد
0

@hesammousavi
چک باکس هایی که من دارم مقدارشون یه رشته هست و تعدادشون زیاده باید همه ی این مقادیرو داخل آرایه ثبت کنم منتهی به صورت آرایه میفرستم ولی در ثبت کردنشون ارور میده


vahid Mohammadi
@viva.mohammadi 6 سال پیش آپدیت شد
2

@alireza2000sajedi
خب دوست من شما دو راه بیشتر نداری
۱- تبدیل آرایه به فرمت JSON و ذخیره در دیتابیس و بازخونی اون و تبدیل اون به فرمت آرایه
در زیر یک مثال برای ذخیره و بازخونی اون از دیتا بیس میارم

//Example PHP array
$example = array(1, 2, 3);

//Encode $example array into a JSON string.
$exampleEncoded = json_encode($example);

//Insert the string into a column
$sql = "INSERT INTO foo (bar) VALUES ('$exampleEncoded')";

//etc

//Example PHP array
$example = array(1, 2, 3);

//Encode $example array into a JSON string.
$exampleEncoded = json_encode($example);

//Insert the string into a column
$sql = "INSERT INTO foo (bar) VALUES ('$exampleEncoded')";

برای باز خونی باید decode کنید مثل مثال زیر :

//Select the row, just like you would any other row.
$sql = "SELECT bar FROM bar WHERE id = 1";
$result = $databaseObject->fetch($sql);

//Decode the JSON string using json_decode.
$example = json_decode($result['bar'], true);

//Do a var_dump, just to see the structure.
var_dump($example);

۲- استفاده از PHP serialize که لینک توضیح این دستور رو در زیر میزارم

http://us.php.net/manual/en/function.serialize.php

Ali Ghaleyan
تخصص : برنامه نویس لاراول
@Serjik 6 سال پیش مطرح شد
2

باید به صورت json_encode ذخیره کنید و به صورت json_decode از دیتا بیس بگیرین


علیرضا ساجدی
تخصص : Laravel,Vuejs
@alireza2000sajedi 6 سال پیش مطرح شد
مرتضی صبیحی
تخصص : Front-end developer
@mortezasabihi 6 سال پیش مطرح شد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام