شباب هوه ازاي الواحد بيخزن array جوه ال mysql ويستخرجها على انها array مش على هيئة string حاولت استخدم ال serialize وافكو بس النتيجة اللي جاية من قاعدة البيانات بتبقى string حتى بعد ال unserialize وبالتالي الدوال الخاصة بالعمل على ال arrays زي مثلا in_array مش هتشتغل لانها هتتعامل مع نص وليس مصفوفة --- السؤال هنا بقى ازاي انهم تخزن array جوه ال mysql بدون ما تتحول ل string ... ياريت يا شباب تساعدوني ضروري وشكرا.
مشكلة اضافة array في قواعد mysql
أولاً عليك بالتحدث بالعربية الفصحى ﻷنه ليس كل من يتحدثها سوف يفهم دارجيتك .
بالنسبة لمشكلة المصفوفات و قواعد البيانات عليك بإستخدام json_encode و json_decode حيث عليك بإستخدام josn_encode بتحول المصفوفة إلي string قبل إدخالها إلي قاعدة البيانات كالتالي :
$data = json_encode(['name'=>'mohamad','age=>20])
ثم عند إخراجها من قاعدة البيانات أن تحولها إلي مصفوفة مره أخرى ، عبر json_decode كمثال :
json_decode($data,true);
ربما أنت جديد في الموقع ووقعت في نفس المشكلة التي يقع فيها المصريون بالاخص في بداية دخولهم علي حسوب I/O وهي الكتابة بالعامية المصرية ،ولكن سبحان الله شعرت أن كتابة المواضيع بالعربية الفصحي تضيف المزيد من التنسيق والجمال للمواضيع وتساعد علي الفهم بشكل أفضل، نقطة ايجابية جداً تحسب للموقع
بخصوص موضوع اللغة العربية انا لم اكن اعرف ان العامية غير مسموح بها هنا في الموقع وبصراحة دي بتخلي الناس تنفر من الموقع لان فيه بعض الناس الذين يحبون ان يتكلموا على راحتهم سواء كان مصريين او مغربيين او اي جنسية كانو فالتشديد من الموقع على موضوع اللغة العربية والزام الناس بالتكلم بالفصحى انا ارى انها فكرة غير سديدة . :D
هذه من شروط الموقع وبصراحة أراها شئ جيد جداً فنحن جميعاً يجب أن نمارس لغتنا العربية بالشكل الصحيح ذلك وأيضاً لو افترضنا أن حدث كما قلت وتحدث كل فرد بلغته سيكون هناك الكثير من الفوضي وربما أنت تنشر موضوع لن يفهمه ويجيب عليه غير المصريون وهكذا لباقي اللهجات العربية ، بشكل أو بأخر فأنت تستفيد من هذا الشرط وايضاً عليك بقبوله لكي لا تتعرض للتسليب و من ثم الحظر من الموقع
حسوب I/O هو مجتمع عربي، رجاءً شارك باللغة العربية الفصحى فقط
ارجو منك الالتزام في ذلك لو سمحت
بالنسبة لموضوع الـ Serialize فهي تتعامل معها على أنها مصفوفة، وبإمكانك استخدام دوال التعامل مع المصفوفات دون مشاكل، ربما طريقة عملك لم تكن صحيح، وهذا مثال مجرب
$newArr = array('Feras','Allaou','تجربة','التعامل مع المصفوفات');
print_r($newArr); // Array ( [0] => Feras [1] => Allaou [2] => تجربة [3] => التعامل مع المصفوفات )
$sArr = serialize($newArr);
echo $sArr; //a:4:{i:0;s:5:"Feras";i:1;s:6:"Allaou";i:2;s:10:"تجربة";i:3;s:38:"التعامل مع المصفوفات";}
$Arr = unserialize($sArr);
$Arr[] = 'إضافة عنصر جديد ';
print_r($Arr); // Array ( [0] => Feras [1] => Allaou [2] => تجربة [3] => التعامل مع المصفوفات [4] => إضافة عنصر جديد )
انا اقصد لما اخزن مثلا المتغير $sArr في حقل من حقول الجدول ولما انفذ الاستعلام لاستخراج قيمة هذا الحقل وعمل unserialize لهذا المتغير
لا يمكن التعامل معها على انها array ولكنه يتعامل معها على اساس انها string كما تم تخزينها في قاعدة البيانات ... فهمتني ؟؟
أنا كتبت الطريقة في الأعلى للتأكد من أنك تقوم بخطوات العمل بشكل سليم، لكن انا استخدم هذه الطريقة دون مشاكل ويمكنني التعامل معها على أنها مصفوفة بعد عمل Unserialize، ما هي نسخة الـ PHP لديك ؟
حاول استخدام
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
لنرى ماهي الأخطاء التي قد تكون موجودة.
التعليقات