يالغالي عند البحث في صحيح البخاري فقط ،، تقوم بوضع تعليمة
WHERE SOME_E_E_E == 'BUKRAY' AND nass like '%$d%'
تحياتي لك
يالغالي عند البحث في صحيح البخاري فقط ،، تقوم بوضع تعليمة
WHERE SOME_E_E_E == 'BUKRAY' AND nass like '%$d%'
تحياتي لك
__________________
زورونا في موقع الحياة للنقاشات والأسئلة والأجوبة :
- php >> وهو لحل مشاكل php وما حولها
- Ideas >> وهو لعرض الأفكار وتقييمها وايضا لمناقشة الأفكار
سلام عليكم ورحمه الله وبركاته
من فضلك قم برفع ملف sql بسيط للقاعدة وفيها عدد من المدخلات وارفقها بملف php واكتب الإستعلام المراد استخدامه وان شاء الله نحاول نعدل لك علي الا ستعلام بما يناسب طلبك
__________________
"لا تزولُ قَدَمَا عَبْدٍ يومَ القيامةِ حتى يُسألَ عنْ أربع ٍ عنْ عُمُرِهِ فيما أفناهُ وعنْ جسدِه فيما أبْلاهُ وعنْ مالهِ مِنْ أيْنَ أخذهُ وفيما أنْفَقَهُ وعنْ عِلمِهِ ماذا عَمِلَ بهِ".
السلام عليكم .. آسف على تأخري بالرد بسبب إصابتي بوعكة صحية .. الظاهر من تغير الجو علي بعد رجوعي من السفر ..
المهم .. جزاك الله خير يا خوي ستر سمعة على الكود .. لكن المشكلة لما قمت بتجريبة أدخل معاي جداول أخرى لا أريد إدخالها بالبحث وهي كثيرة .. فقمت أنا بعمل صفحة خاصة تنسخ جميع محتويات الجداول المطلوبة في جدول واحد وسميته Hadeeth ويتحوي على التالي:
id يحتوي على الرقم التسلسلي ..
nass يحتوي النص المطلوب البحث فيه (يعني مجموعة الأحاديث) ..
part رقم المجلد ..
page رقم الصفحة ..
hno رقم الحديث ..
Mohaddeth اسم الكتاب .. وهذه هي الإضافة الجديدة ..
الجدير بالذكر هنا .. أن سرعة الاستعلام في الجداول القديمة أسرع بكثير من الاستعلام عبر هذا الجدول ..
وكانت النتيجة التالية:
الاستعلام هو جملة "ليس الشديد بالصرعة" في مسند الإمام أحمد فقط ..
في جدول Hadeeth كانت سرعة تنفيذ الاستعلام 0.1978 ..
أما في جدول Ahmed كانت سرعة تنفيذ الاستعلام 0.0076 ..
وهذا بالنسبة للسيرفر المحلي .. حقيقة أنا لا أريد إهلاك قاعدة البيانات .. ولكني سأسير على الطريقتني جنباً إلى جنب لأرى المزايا والمساوئ التي تترتب على كلتا الطريقتين ..
ما هي الخطوة التالية ؟؟ ..
سؤال .. ما فائدة SOME_E_E_E في الاستعلام ؟؟ ..
سؤال للأخ shoqi .. هل هناك بديل عن LIKE أسرع وأخف على قاعدة البيانات ؟؟ ..
__________________
لغة PHP
طريقك نحو التقدم و الإبداع .. قريبا جداً
البيانات في Hadeeth تشمل جميع بيانات الكتبفي جدول Hadeeth كانت سرعة تنفيذ الاستعلام 0.1978 ..
أما في جدول Ahmed كانت سرعة تنفيذ الاستعلام 0.0076 ..
أما في Ahmed فهي كتب أحمد فقط
حاول تطبيق مقارنة على جميع الكتب حتى تتأكد من جدوى العملية ..
ثانيا اضف index لحقل المحدث واستخدم where لتحديد المحدث المراد البحث في كتبه .
أما بالنسبة للبديل عن LIKE الفهرسة هو أفضل حل ، وموضوعها يطول ومتشعب وكل واحد له طريقة فيها
جرب الإستعلامين هاذين، وأخبرنا عن الوقت المستغرق لتنفيذ كل واحِد
كود PHP:
SELECT * FROM Hadeeth WHERE nass like '%ليس الشديد بالصرعة%'
SELECT * FROM Hadeeth WHERE Mohaddeth='Ahmed' AND nass like '%ليس الشديد بالصرعة%'
__________________
فتش - للعقارات والسيارات
<?بي إتش بي طباعة "إيجاد كل المواضيع المكتوبة بواسطة مستر سمعة"; ?>
أعتقد ان الموضوع يحتاج إلى مثال جتى نصل الى نتيجه بشكل أسرع , لكن يمكن لي القول:
- انه يجب عليك استخدام خاصية full text search واستخدام العباره MATCH و AGAINST بدلا من LIKE حتى تتغلب على مشكلة البحث بسرعة .
- يجب أيضا توحيد هيكلة البيانات لتصبح بهيكل صحيح حتى لا يكون لديك *عدد كبير من الجداول كماهو حالك الان.
* أعتقد انك وضعت عدد كبير من الجداول للتغلب على مشكلة سرعة البحث او غيره من المشاكل وهذا غير صحيح.
__________________
ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
الاتصال: daif@daif.net او جوال: 0556639884
الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .
أنا أيضا غير متأكد من مدى فعالية طريقة تقسيم كل كتاب في جدولين بقاعدة البيانات
ربما يكون فعلا أخف على السيرفر لجهة البحث، لا أعلم
على كل حال
يمكن تنفيذ هذا الأمر عن طريق وضع اسماء الجداول في مصفوفة والبحث فيها بالشكل التالي:
واذا كنت تريد جلب اسماء الجداول بشكل ديناميكي يمكنك تنفيذ هذا الكودكود PHP:
$tables = array('Bukhary', 'Muslem', 'Termizy',);
foreach($tables as $table)
{
mysql_query("SELECT * FROM $table WHERE `nass` = '$search' ");
}
كود PHP:
$q = mysql_query("show tables;");
while($table = mysql_fetch_array($q))
{
if( substr($table[0], -7) != '_Titles' )
{
mysql_query("SELECT * FROM $table[0] WHERE `nass` = '$search' ");
}
}
__________________
الخدمات البرمجية
تعديلات برمجية - تطوير برمجيات جاهزة - صيانة قواعد بيانات
برمجة خاصة (الأولوية للأفكار الجديدة والخاصة)
المراسلة : http://it.rewaq.com