السلام عليكم
أنت عندك في جدول المستخدمين اسمين
حائر
حاور
لو بحثت عن حائر تكون النتيجة الاسمين ؟؟؟
كتبت
فما الحل ؟؟؟كود PHP:
$rs = mysql_query("SELECT userid, username FROM users WHERE username='حائر'");
السلام عليكم
أنت عندك في جدول المستخدمين اسمين
حائر
حاور
لو بحثت عن حائر تكون النتيجة الاسمين ؟؟؟
كتبت
فما الحل ؟؟؟كود PHP:
$rs = mysql_query("SELECT userid, username FROM users WHERE username='حائر'");
__________________
شبكة الواحة العامرة
فعلاً .. مشكلة ..
ولكنه على الاقل يبحث لك عن الاسم المشابهة ..
وبانتظار حل المشكلة من الخبراء ..
__________________
استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور
للأهمية !!
لجميع العرب
__________________
شبكة الواحة العامرة
اخوي here
تأكد انك تتصل بالقاعدة بترميز windows-1256
انا ماجربتها على كود مستقل لكن استخدمها في منتداي
__________________
http://www.vb2plus.com/index.php?action=news&id=12
أقوى نظام بنرات عرفته المنتديات
هذا فقط على الإصدارات الجديده من 4.1 ومافوق من mysql ياعزيزي جريحالمشاركة الأصلية كتبت بواسطة جريح الحب
وهذه ميزه في هذه الإصدارات حيث أن بها أنظمة التراميز كلها ومن ضمنها اليونيكود 16 بت
عزيزي الاخ اباعقيل
سبب إظهار نتيجتين بدل نتيجه في بحثك هو الترميز .
فحرف الواو في الترميز العربي 1256 والذي يسمى (windows-1256) له حرفين أخرى في أنظمة الترميز الأخرى لذلك ظهرت معك النتيجه في البحث حاور وحائر.
جرب إصدار 4.1 من الـmysql وابحث فيه عن الـ charsets فسوف تصل إن شاء الله لما بسطته لك في ردي هذا .
موفق
بارك الله فيكما
أخي عندليب ...
لو كان الأمر بيدي لا مشكلة .. لكن هذا سيرفر الشركة !
طيب
لدي سؤال .. سأكسب وجودك معي
زين إني كفشتك
الحين أنا ركبت الإصدارة 5 من MYSQL على جهازي
لكن المشكلة .. إن السيرفر صار ثقيل نوعا ما بسبب هذه الإصدارة الجديدة .. وللأسف تغيرت الرموز العربية لما أستعرض البيانات من ال phpmyadmin التي فيها ميزة charset
ولم أستطع إرجاعها إلى العربية !! هل من حل لإصلاح الخلل ؟؟
ما القيمة التي يجب علي أن أضعها في charset
وآسفين على الإزعاج
__________________
شبكة الواحة العامرة
ياهلا وسهلا بالأخ باعقيل وسؤالك سؤال شخص فاهم وسؤال في محله
عزيزي إصدارات الـ Mysql الجديده تحتوي على أربع طبقات في نظام الترميز
الطبقه الأولى نظام ترميز الحقل
الطبقه الثانيه نظام ترميز الجدول
الطبقه الثالثه نظام ترميز القاعده
الطبقه الرابعه نظام ترميز الاتصال بالقاعده
وهذه الطبقات تجعلك في مرونه بحيث تضع نظام ترميز لكل حقل أو نظام ترميز لكل جدول أو نظام ترميز لكل قاعده وهذه ميزه جباره في الإصدارات الجديده من الـ Mysql
إذا قمت بتركيب قاعده منسوخه من الإصدارات القديمه الى الإصدار الجديد فسوف تعطي نظام الترميز الإفتراضي Latin5 على كل الطبقات ماعدا طبقة الإتصال فتعطى ترميز اليونيكود UTF-8 ( حسب التركيب الافتراضي ).
وبهذا الشكل تجد قاعدتك مرمزه بنظام ترميز يونيكود طبقة الاتصال هي اخر شي يظهر من القاعده.
حيث أن الحرف في ترميز اليونيكود يعادل 16 بت بعكس أنظمة الترميز العاديه والتي يكون فيها الترميز 8 بت
تحياتي لك
التعديل الأخير تم بواسطة العندليب ; 09-02-2006 الساعة 12:58 AM سبب آخر: نسيت أضيف ترميز الـ latin5
----------
__________________
شبكة الواحة العامرة
اهلين والله أخي باعقيل
المعذره لم أكمل مابدأته من نقاش
أنا شايف في ردك الأخير إنك وضعت حل طويل بالنسبه للإصدارات القديمه يا أخ علوي لكنه حل جيد ومش بطال
ع العموم سأذكر لك الطريقه القديمه والطريقه الجديده.
عزيزي هناك مشغّل (operator) موجود بالإصدارات القديمه وموجود أيضاً بالإصدارات الجديده وهو BINARY فهو يجعل حساسية الأحرف تعمل بمعنى أن حرف A ليس مثل حرف a لذلك مع اللغه العربيه ستعمل بشكل ممتاز
مثال :
هذا مالدي بخصوص الإصدارات القديمه من mysqlكود PHP:
$rs = mysql_query("SELECT userid, username FROM users WHERE BINARY username='حائر'");
أما بالإصدارات الجديده فيجب عليك من تركيب قاعدة بيانات منتداك على ترميز العربي الـ cp1256 وهو الترميز الموجود في الـ mysql والذي يعادل ترميز WINDOWS-1256 والمصمم للحروف العربيه.
لذلك عند إنشائك لقاعدة البيانات أنشأها بترميز الـ cp1256 حسب المثال التالي:
بعدها قم بأخذ نسخه من قاعدة بيانات منتداك من الإصدار القديمه للـ mysql وقم بإدخالها في هذه القاعده الجديده بالإصدار الجديد ولكن تذكر طبقة الإتصال يجب أن تكون بنفس الترميز الذي خصصته للقاعده وهو cp1256كود PHP:
CREATE DATABASE db_name
DEFAULT CHARACTER SET cp1256 COLLATE cp1256_general_ci;
لأنك إذا لم تحدد ترميز الإتصال سوف تظهر الحروف في قاعدتك بشكل مستفهم ( ؟؟؟؟؟؟؟؟؟؟؟؟ )
مثال على أمر mysql في الشل
بعدها قم بتعديل ملف الكونفق في المنتدى وضع هذا السطر:كود PHP:
mysql --default-character-set=cp1256 -uUSER -pPASS NEWDB < OLDDB.sql
هذا إذا كانت نسخة منتداك 3.5 أما نسخة 3.0 فتحتاج الى تعديل برمجي حتى تتعامل مع الـ charset الموجود في إصدارات الـ mysql الجديده. والتعديل يتم في دالة الاتصال بقاعدة البيانات فقط .كود PHP:
$config['Mysqli']['charset'] = 'cp1256';
بالنسبه لسؤالك عن دالة REPLACE فأعتقد أنها سترفع اللووود على الخادم إذا كانت القاعده كبيره.
بالتوفيق
جزاك الله خير
الغريب أني كنت استخدمت ال
BINARY
لكن لاحظت أن لم ينفع ويعطيني خطاأ
غريبة
على كل حال
بارك الله فيك .. لقد أنقذتني
__________________
شبكة الواحة العامرة