استعمل مربع البحث في الاسفل لمزيد من المواضيع
سريع للبحث عن مواضيع في المنتدى
-
11-01-2013, بتوقيت غرينيتش 03:46 PM
#1
التخلص من مشاكل الهمزات عند البحث عن الأسماء العربية
ط§ظ„طھط®ظ„طµ ظ…ظ† ظ…ط´ط§ظƒظ„ ط§ظ„ظ‡ظ…ط²ط§طھ ط¹ظ†ط¯ ط§ظ„ط¨ط*ط« ط¹ظ† ط§ظ„ط£ط³ظ…ط§ط، ط§ظ„ط¹ط±ط¨ظٹط©
من فترة طويييييييلة كنت أعاني من مشكلة في الأسماء العربية من حيث الهمزات والطريقة الخاطئة لكتابة الأسماء
وطرحتها كمشكلة حينها ولكن لم أجد حل 
سؤال في mysql و php
ولكن الحمد لله قد توصلت منذ فترة إلى الحل الأكيد للمشكلة وكل مرة أريد وضع الموضوع يحدث ما يعطلني 
فتوكلت على الله و إن شاء الله سوف نشرح طريقة كيف يمكن التغلب عليها
الحل كله يكمن في استخدام التعابير المنطقية regular expressions في اللغتين php و mysql
ازاي ؟؟؟
هنشرح طريقة الفكرة الأول وبعدين نضع الكود code
الفكرة إن لما المستخدم يكتب الألف بدون همزة أو بأي شكل من أشكالها يستبدلها بأي نوع من أنواع الألف في الكلمة و لو كتب الياء بالشكل ده "ي" أو "ى" برضه كأنه مفيش فرق وهكذا في الحروف المتشابهة ويحولها كلها لتعابير منطقية ولما ييجي يبجث في mysql يبحث بالتعابير المنطقية
لو مفهمتش حاجة ده طبيعي أنا حاسس إن كلامي معقد بس إن شاء الله بتفهم من الكود code لأنه بسيط جدا
الكود code
أول حاجة ننفذ الكلام اللي فوق
رمز PHP:
<code style="white-space:nowrap"> <code> function arabic_lang($text){
$text=preg_replace("/(أ|إ|ا|آ)/","(أ|إ|ا|آ)",$text);
$text=preg_replace("%(ه|ة)%","(ه|ة)",$text);
$text=preg_replace("%(ي|ى)%","(ي|ى)",$text);
return $text;
}
</code> </code>
الدالة مهمتها إنها تظبط الكلام العربي بحيث إن الحروف اللي فيها مشاكل تعملها تعبير منطقي
طب لما نيجي ننفذ الاستعلام
فيه شرط زي like كده بس بياخد تعبير منطقي أنا كنت أول مرة أعرفه من فترة وجيزة اسمه rlike
هنعمل الاستعلام بتاعنا عن طريق الشرط ده
رمز PHP:
<code style="white-space:nowrap"> <code>
$name=arabic_lang($_POST['name']
;
$data=mysql_query("select `name`,`id` from students where `name` rlike '$name' ");
</code> </code>
رمز PHP:
<code style="white-space:nowrap"> <code>
function arabic_lang($text){
$text=preg_replace("/(أ|إ|ا|آ)/","(أ|إ|ا|آ)",$text);
$text=preg_replace("%(ه|ة)%","(ه|ة)",$text);
$text=preg_replace("%(ي|ى)%","(ي|ى)",$text);
return $text;
}
$name=arabic_lang($_POST['name']
;
$data=mysql_query("select `name`,`id` from students where `name` rlike '$name' ");
</code> </code>
أتمنى تكون الفكرة وصلت لكم لأني عارف إن مستواي في الشرح طريقة مش كويس
بس والله الغرض من الموضوع إني أنشر العلم لأني لم أجد دروسا تتكلم عن هذا الموضوع
وياريت حد من الإخوة يحاول إعادة صياغة الموضوع بشكل مبسط لتعم الفائدة

©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى©
المواضيع المتشابهه
-
بواسطة loulou ange في المنتدى منتدى الصحة العامة
مشاركات: 0
آخر مشاركة: 11-08-2013, بتوقيت غرينيتش 10:08 AM
-
بواسطة romaissa في المنتدى التعليم الإبتدائي
مشاركات: 0
آخر مشاركة: 11-02-2013, بتوقيت غرينيتش 11:27 PM
-
بواسطة admin في المنتدى تقنيات المواقع SEO و XML و RSS و محركات البحث و الأرشفة
مشاركات: 0
آخر مشاركة: 11-01-2013, بتوقيت غرينيتش 06:29 PM
-
بواسطة Chakira في المنتدى تعريفات مشاكل و حلول أجهزة و ملحقات الحاسوب
مشاركات: 0
آخر مشاركة: 10-19-2013, بتوقيت غرينيتش 08:42 PM
-
بواسطة romaissa في المنتدى ميك اب (مكياج) و تسريحات
مشاركات: 0
آخر مشاركة: 10-19-2013, بتوقيت غرينيتش 10:27 AM
ضوابط المشاركة
- لا تستطيع إضافة مواضيع جديدة
- لا تستطيع الرد على المواضيع
- لا تستطيع إرفاق ملفات
- لا تستطيع تعديل مشاركاتك
-
قوانين المنتدى