النتائج 1 إلى 10 من 10

الموضوع: مشكلة البحث بالعربي في mysql ؟؟ من يحلها

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2002
    المشاركات
    542

    مشكلة البحث بالعربي في mysql ؟؟ من يحلها



    السلام عليكم

    أنت عندك في جدول المستخدمين اسمين
    حائر
    حاور

    لو بحثت عن حائر تكون النتيجة الاسمين ؟؟؟

    كتبت

    كود PHP:
    $rs mysql_query("SELECT userid, username FROM users WHERE username='حائر'"); 
    فما الحل ؟؟؟







  2. #2
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000


    فعلاً .. مشكلة ..

    ولكنه على الاقل يبحث لك عن الاسم المشابهة ..

    وبانتظار حل المشكلة من الخبراء ..





    __________________
    استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور

  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2002
    المشاركات
    542


    للأهمية !!
    لجميع العرب






  4. #4


    اخوي here

    تأكد انك تتصل بالقاعدة بترميز windows-1256

    انا ماجربتها على كود مستقل لكن استخدمها في منتداي





    __________________
    http://www.vb2plus.com/index.php?action=news&id=12
    أقوى نظام بنرات عرفته المنتديات

  5. #5


    اقتباس المشاركة الأصلية كتبت بواسطة جريح الحب
    اخوي here

    تأكد انك تتصل بالقاعدة بترميز windows-1256

    انا ماجربتها على كود مستقل لكن استخدمها في منتداي
    هذا فقط على الإصدارات الجديده من 4.1 ومافوق من mysql ياعزيزي جريح
    وهذه ميزه في هذه الإصدارات حيث أن بها أنظمة التراميز كلها ومن ضمنها اليونيكود 16 بت


    عزيزي الاخ اباعقيل
    سبب إظهار نتيجتين بدل نتيجه في بحثك هو الترميز .
    فحرف الواو في الترميز العربي 1256 والذي يسمى (windows-1256) له حرفين أخرى في أنظمة الترميز الأخرى لذلك ظهرت معك النتيجه في البحث حاور وحائر.

    جرب إصدار 4.1 من الـmysql وابحث فيه عن الـ charsets فسوف تصل إن شاء الله لما بسطته لك في ردي هذا .

    موفق






  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2002
    المشاركات
    542


    بارك الله فيكما

    أخي عندليب ...

    لو كان الأمر بيدي لا مشكلة .. لكن هذا سيرفر الشركة !

    طيب

    لدي سؤال .. سأكسب وجودك معي

    زين إني كفشتك

    الحين أنا ركبت الإصدارة 5 من MYSQL على جهازي

    لكن المشكلة .. إن السيرفر صار ثقيل نوعا ما بسبب هذه الإصدارة الجديدة .. وللأسف تغيرت الرموز العربية لما أستعرض البيانات من ال phpmyadmin التي فيها ميزة charset

    ولم أستطع إرجاعها إلى العربية !! هل من حل لإصلاح الخلل ؟؟

    ما القيمة التي يجب علي أن أضعها في charset

    وآسفين على الإزعاج






  7. #7


    ياهلا وسهلا بالأخ باعقيل وسؤالك سؤال شخص فاهم وسؤال في محله

    عزيزي إصدارات الـ Mysql الجديده تحتوي على أربع طبقات في نظام الترميز
    الطبقه الأولى نظام ترميز الحقل
    الطبقه الثانيه نظام ترميز الجدول
    الطبقه الثالثه نظام ترميز القاعده
    الطبقه الرابعه نظام ترميز الاتصال بالقاعده

    وهذه الطبقات تجعلك في مرونه بحيث تضع نظام ترميز لكل حقل أو نظام ترميز لكل جدول أو نظام ترميز لكل قاعده وهذه ميزه جباره في الإصدارات الجديده من الـ Mysql
    إذا قمت بتركيب قاعده منسوخه من الإصدارات القديمه الى الإصدار الجديد فسوف تعطي نظام الترميز الإفتراضي Latin5 على كل الطبقات ماعدا طبقة الإتصال فتعطى ترميز اليونيكود UTF-8 ( حسب التركيب الافتراضي ).
    وبهذا الشكل تجد قاعدتك مرمزه بنظام ترميز يونيكود طبقة الاتصال هي اخر شي يظهر من القاعده.
    حيث أن الحرف في ترميز اليونيكود يعادل 16 بت بعكس أنظمة الترميز العاديه والتي يكون فيها الترميز 8 بت


    تحياتي لك





    التعديل الأخير تم بواسطة العندليب ; 09-02-2006 الساعة 12:58 AM سبب آخر: نسيت أضيف ترميز الـ latin5

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2002
    المشاركات
    542


    ----------






  9. #9


    اهلين والله أخي باعقيل
    المعذره لم أكمل مابدأته من نقاش

    أنا شايف في ردك الأخير إنك وضعت حل طويل بالنسبه للإصدارات القديمه يا أخ علوي لكنه حل جيد ومش بطال

    ع العموم سأذكر لك الطريقه القديمه والطريقه الجديده.

    عزيزي هناك مشغّل (operator) موجود بالإصدارات القديمه وموجود أيضاً بالإصدارات الجديده وهو BINARY فهو يجعل حساسية الأحرف تعمل بمعنى أن حرف A ليس مثل حرف a لذلك مع اللغه العربيه ستعمل بشكل ممتاز
    مثال :
    كود PHP:
    $rs mysql_query("SELECT userid, username FROM users WHERE BINARY username='حائر'"); 
    هذا مالدي بخصوص الإصدارات القديمه من mysql

    أما بالإصدارات الجديده فيجب عليك من تركيب قاعدة بيانات منتداك على ترميز العربي الـ cp1256 وهو الترميز الموجود في الـ mysql والذي يعادل ترميز WINDOWS-1256 والمصمم للحروف العربيه.
    لذلك عند إنشائك لقاعدة البيانات أنشأها بترميز الـ cp1256 حسب المثال التالي:
    كود PHP:
    CREATE DATABASE db_name
        
    DEFAULT CHARACTER SET cp1256 COLLATE cp1256_general_ci
    بعدها قم بأخذ نسخه من قاعدة بيانات منتداك من الإصدار القديمه للـ mysql وقم بإدخالها في هذه القاعده الجديده بالإصدار الجديد ولكن تذكر طبقة الإتصال يجب أن تكون بنفس الترميز الذي خصصته للقاعده وهو cp1256
    لأنك إذا لم تحدد ترميز الإتصال سوف تظهر الحروف في قاعدتك بشكل مستفهم ( ؟؟؟؟؟؟؟؟؟؟؟؟ )
    مثال على أمر mysql في الشل
    كود PHP:
    mysql --default-character-set=cp1256 -uUSER -pPASS NEWDB OLDDB.sql 
    بعدها قم بتعديل ملف الكونفق في المنتدى وضع هذا السطر:
    كود PHP:
    $config['Mysqli']['charset'] = 'cp1256'
    هذا إذا كانت نسخة منتداك 3.5 أما نسخة 3.0 فتحتاج الى تعديل برمجي حتى تتعامل مع الـ charset الموجود في إصدارات الـ mysql الجديده. والتعديل يتم في دالة الاتصال بقاعدة البيانات فقط .

    بالنسبه لسؤالك عن دالة REPLACE فأعتقد أنها سترفع اللووود على الخادم إذا كانت القاعده كبيره.

    بالتوفيق






  10. #10
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2002
    المشاركات
    542


    جزاك الله خير

    الغريب أني كنت استخدمت ال
    BINARY
    لكن لاحظت أن لم ينفع ويعطيني خطاأ

    غريبة

    على كل حال
    بارك الله فيك .. لقد أنقذتني










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض